有没有办法强制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');
})
附言:使用许多设置超时可能会降低性能。