![](/img/trans.png)
[英]How can I improve this Javascript, for attaching events to all elements in page?
[英]how can I dispatch customized events to all listening elements
樣例代碼:
var evt = document.createEvent('Event');
evt.initEvent('myevent',true,true);
ele.dispatchEvent(evt) //ele is an HTML element
但是它只是將事件分派給一個元素,是否有一種優雅的方法將事件廣播到所有使用addEventListener('myevent',...)注冊回調函數的元素?
d = {}; // keep track of the listeners for each event.
// Register the event listeners
function registerListener(elem, evt, d) {
if (d.hasOwnProperty(evt)) {
d[evt].push(elem);
}
else {
d[evt] = [];
}
}
// Get the listeners and dispatch the event to all them
function dispatchAll(evt, d) {
var listeners = d[evt],
elem;
for (var i = 0; i < listeners.length; i++) {
elem = listeners[i];
elem.dispatchEvent(evt);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.