我有两个或更多用jQuery选择的变量,我想在所有这些变量上分配具有相同功能的点击事件。或者一个变量和一个选择器。我该怎么做?我能做到:
function click_event_1(var_1, var_2) {
var_1.on("click", function() {
alert(1);
});
var_2.on("click", function() {
alert(1);
});
}
function click_event_2(var_1, selector) {
var_1.on("click", function() {
alert(1);
});
jQuery(selector).on("click", function() {
alert(1);
});
}
但我想为每个事件只写一个函数。
答案 0 :(得分:2)
您(至少)有两个选择:
使用命名函数:
function click_event_1(var_1, var_2) {
var_1.on("click", handler);
var_2.on("click", handler);
function handler() {
alert(1);
}
}
使用add
,它创建一个新的jQuery集,其中包含您调用它的集合的联合以及您作为参数提供的集合:
function click_event_1(var_1, var_2) {
var_1.add(var_2).on("click", function() {
alert(1);
});
}
两者都适用于你的第二个例子(add
接受一个选择器和一个集合。)
答案 1 :(得分:1)
您可以使用add添加到jQuery集合中,无论是元素还是选择器:
var_1.add(var_2).click
或者:
var_1.add(selector).click
该事件将适用于集合中的所有元素。
答案 2 :(得分:0)
您可以为这些元素添加一个类。
var element1 = $('#element1');
element1.addClass('clickable');
var element2 = $('#element2');
element2.addClass('clickable');
// for elements inside an iframe
var iframeElement1 = $('#iframeElement1', $('iframe').contents());
iframeElement1.addClass('clickable');
// you can add more elements here
$('.clickable').on('click', function (event) {
// do click logic here
})