【发布时间】:2017-11-13 15:21:40
【问题描述】:
有没有办法强制 JS 中的事件处理程序总是作为最后一个触发?假设我知道将来会出现一些新的事件处理程序,但我想确保每个新的处理程序都会在我的特殊处理程序之前被触发。
【问题讨论】:
标签: javascript events event-handling dom-events
有没有办法强制 JS 中的事件处理程序总是作为最后一个触发?假设我知道将来会出现一些新的事件处理程序,但我想确保每个新的处理程序都会在我的特殊处理程序之前被触发。
【问题讨论】:
标签: javascript events event-handling dom-events
一种方法是将您的 main 函数包装在 setTimeout 函数中并传递 0 延迟,因此 Javascript 引擎会将其添加到其函数堆栈并最后执行该函数。
document.getElementById("div1").addEventListener('click', function(e) {
setTimeout(function(){
console.log('MAIN Event');
},0);
})
document.getElementById("div1").addEventListener('click', function(e) {
console.log('dosmth2');
})
document.getElementById("div1").addEventListener('click', function(e) {
console.log('dosmth3asd');
})
附:使用许多 setTimeouts 可能会降低性能。
【讨论】: