javascript - 是否可以将匿名函数附加到两个不同的元素/事件?

标签 javascript jquery events jquery-events

我想知道是否可以使用 .on() 将匿名函数附加到两个不同的元素和两个不同的事件。例如,我正在使用引导选项卡, Bootstrap 会引发一个自定义事件类型来更改名为 shown.bs.tab 的选项卡。我想使用 .on() 将匿名函数附加到此事件,但我想将相同的匿名函数附加到按钮的 click 事件。

我正在考虑这样做:

$('a[data-toggle="tab"],#myButton').on('shown.bs.tab click', function () {
    alert("Tada");
});

但这有一个副作用,即切换选项卡时会显示两次警报。一次用于 shown.bs.tab 事件,另一次用于 click 事件。

我想我可以这样做:

function ShowAlert() {
    alert("Tada");
}
$('a[data-toggle="tab"]').on('shown.bs.tab', ShowAlert);
$('#myButton').on('click', ShowAlert);

但我想使用匿名函数。有没有一种优雅的方式来执行以下操作?

// Pseudocode
$('a[data-toggle="tab"]').on('shown.bs.tab') AND $('#myButton').on('click') DO: function () {
    alert("Anonymous function called");
});

最佳答案

我想你可以这样做:

var ShowAlert = function() {
    alert("Tada");
}
$('a[data-toggle="tab"]').on('shown.bs.tab', ShowAlert);
$('#myButton').on('click', ShowAlert);

ShowAlert 从技术上讲是一个匿名函数。

关于javascript - 是否可以将匿名函数附加到两个不同的元素/事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43005315/

相关文章:

javascript - 如何在 javascript 中查找 1 个月、3 个月或 6 个月以内的日期数量?

jquery - 查找包含在 HTML 标签中的元素

javascript - Backbonejs - 查看自定义 HTML 属性?

jQuery - 当元素从 DOM 中移除时触发事件

javascript - jQuery 委托(delegate)对象而不是选择器作为第一个参数

javascript - Mocha before 函数 - 没有大括号错误的 lambda;带有花括号的 lambda 可以工作

javascript - 如何在 googlechart api 中添加函数 SelectHandler

javascript - 如何将数据提取到 JavaScript 中的对象中?

javascript - 使用 jQuery 检索提交标签

javascript - JS函数定义: meaning of the last parentheses