一次在多个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(....
如果你不喜欢它,如果你毕竟调用单独的绑定,你可以选择声明一个命名函数,并参考它,而不是三次声明相同的匿名内联函数。