一次在多个jQuery元素上绑定一个函数

时间:2011-11-06 00:49:50

标签: javascript jquery jquery-selectors

我有3个jquery对象:

var a = $('.el1');
var b = $('.el2');
var c = $('.el3');

我想立即将“改变”事件绑定到所有人身上,但我不能:(

$(a, b, c).bind('paste input change', function(){ ... });根本不起作用......

但是,如果将它分别绑定到每个元素,它可以工作:

a.bind('...');
b.bind('...');
c.bind('...');

是否可以用更短的方式做到这一点?

(并且不将类作为选择器传递)

4 个答案:

答案 0 :(得分:22)

使用.add() [docs]

a.add(b).add(c).bind(...

答案 1 :(得分:6)

$([a,b,c])。bind应该可以工作,如:

var a = $('.el1');
var b = $('.el2');
var c = $('.el3');

$([a,b,c]).each(function(idx){
    $(this).bind('click', function(){
       alert($(this).text());
    });
});

答案 2 :(得分:3)

试试这个:

$('.el1, .el2, .el3').bind(....)

答案 3 :(得分:2)

使用$('.el1, .el2, .el3').bind(....

另一个解决方案是稍后将它们合并:

var d = a;
d.add(b);
d.add(c);

d.bind(....

如果你不喜欢它,如果你毕竟调用单独的绑定,你可以选择声明一次命名函数,并参考它,而不是三次声明相同的匿名内联函数。 / p>