我正在搜索有关javascript中绑定到页面事件的函数执行顺序的详细信息,例如通过EventListener。
例如,如果我将三个函数A(),B()和C()绑定到同一个事件(比如DOMContentLoaded),那么这三个函数的执行顺序是什么? 基于JS代码中addEventListener调用顺序的逐个?或者他们同时执行?
此外,我可以修改此订单吗?例如,要有一个绑定到DOMContentLoaded事件侦听器的函数,要在绑定到同一事件的任何其他函数之前执行。
答案 0 :(得分:8)
事件处理程序总是按照注册顺序调用。
注册后,您无法在其前面插入其他处理程序[*]。
[*]除非你能够获得所有处理程序及其EventListener
个对象的列表,并调用removeEventListener
删除它们,插入自己的,然后重新插入原件。在实践中,这可能是不可能的。
答案 1 :(得分:1)
var listeners = [];
//add listeners in whatever order you want them executed
document.addEventListener("DOMContentLoaded", function(event) {
for (var i = 0; i < listeners.length; i++) {
listeners[i]();
}
});