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

我有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('...'); 

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

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

使用.add() [docs]

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

$([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()); }); }); 

试试这个:

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

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

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

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

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