js多個物件繫結一個事件的方法
阿新 • • 發佈:2019-02-04
關於一個物件繫結多個事件的方法之前轉載過一篇文章,講這方面的文章也比較多,但是在多個物件上繫結同一事件的問題困擾了我許久,今天終於找到了解決方案,兩中方法都是基於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");)});