是否有某种方法可以强制 JS 中的事件处理程序始终作为最后一个触发?假设我知道将来会出现一些新的事件处理程序,但我想确保每个新的处理程序都会在我的特殊事件处理程序之前被触发。
最佳答案
一种方法是将主函数包装在 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');
})
P.s.使用许多 setTimeouts 可能会降低性能。
关于javascript - Fire JS 事件处理程序始终作为最后一个,无论添加顺序如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47267712/