我想知道是否可以使用.on()
将匿名函数附加到两个不同的元素和两个不同的事件。例如,我使用引导选项卡和引导程序引发自定义事件类型以更改名为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");
});
答案 0 :(得分:1)
我想你可以这样做:
var ShowAlert = function() {
alert("Tada");
}
$('a[data-toggle="tab"]').on('shown.bs.tab', ShowAlert);
$('#myButton').on('click', ShowAlert);
ShowAlert
在技术上是一个匿名函数。
答案 1 :(得分:1)
jQuery使用css选择器,因此您可以对不同的类使用相同的代码,您可以使用以下方法搜索多个对象:
var ShowAlert = function() {
alert("Tada");
};
$('.a[data-toggle="tab"],#myButton').on('click', ShowAlert);
或
var ShowAlert = function() {
alert("Tada");
};
$('.a[data-toggle="tab"]').add('#myButton').on('click', ShowAlert);