无论添加顺序如何,都将 JS 事件处理程序始终作为最后一个触发 JS 事件处理程序



有没有办法强制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');
})

附言:使用许多设置超时可能会降低性能。

相关内容

  • 没有找到相关文章

最新更新