Javascript:单个事件的多个侦听器。

Javascript:单个事件的多个侦听器。,javascript,javascript-events,event-handling,Javascript,Javascript Events,Event Handling,在Javscript中,我们可以在单个事件上设置多个侦听器。例如: element.addEventListener('click',startDragDrop,false); element.addEventListener('click',spyOnUser,false); 我计划在我的项目中也这样做。我只是想确保它不会对回调的执行顺序造成任何问题。它说,W3C模型没有声明首先触发哪个事件处理程序,因此您不能假设startDragDrop()在spyOnUser()之前执行。但我想确定我的

在Javscript中,我们可以在单个事件上设置多个侦听器。例如:

element.addEventListener('click',startDragDrop,false);
element.addEventListener('click',spyOnUser,false);

我计划在我的项目中也这样做。我只是想确保它不会对回调的执行顺序造成任何问题。它说,W3C模型没有声明首先触发哪个事件处理程序,因此您不能假设startDragDrop()在spyOnUser()之前执行。但我想确定我的startDragDrop应该先执行,然后再执行spyOnUser()。有什么办法可以确定吗?

是的,这就是为什么它被称为addEventListener而不是setEventListener。根据前面的评论链接,顺序由较新的规范保证。但是如果你想支持真正的旧浏览器,你必须使用你自己的事件绑定代理来控制顺序,或者使用一个库(例如,jQuery即使对于不支持addEventListener的旧浏览器也能保证这一点)。谢谢,我不必担心旧浏览器,因为我们不支持它们:)