1. 程式人生 > >js多個物件繫結一個事件的方法

js多個物件繫結一個事件的方法

關於一個物件繫結多個事件的方法之前轉載過一篇文章,講這方面的文章也比較多,但是在多個物件上繫結同一事件的問題困擾了我許久,今天終於找到了解決方案,兩中方法都是基於JQuery實現的:

方法一:

 首先獲取三個要繫結事件的物件,var a = $("#a"), b = $("#b"),c = $("#c");

用JQuery的add方法實現:

a.add(b).add(c).bind("event",function(e,data){ alert("bind success");});

當然事先你應該trigger一個“event”事件.這裡可以用click事件測試而無須trigger:

a.add(b).add(c).click(function () { alert("test"); };

add方法描述 新增一個新元素到一組匹配的元素中,並且這個新元素能匹配給定的表示式。

方法二:

通過JQuery的each方法遍歷新增,將事件繫結在所有被遍歷的物件上:

 $("div").each(function(){ $(this).click(function(){alert('test');}); });

each方法描述:以每一個匹配的元素作為上下文來執行一個函式。

當然除了以上兩種方法也可以使用原始的迴圈方法進行多物件繫結,建立一個物件陣列然後迴圈新增,原理其實和方法一差不多:

var array = [a,b,c];

for(var i=0;i<array.length;i++) { array[i].bind("event",function(e,data){ alert("bind success");)});