JavaScript中的事件处理程序是按顺序调用的吗?

问题描述 投票:37回答:1

如果我将多个事件处理程序附加到单个DOM元素上的单个事件,那么事件处理程序是否保证按添加顺序调用?或者我不应该依赖这种行为?

javascript events dom javascript-events event-handling
1个回答
29
投票

这个has been changed与DOM3!虽然DOM level 2 events specification确实陈述

当事件到达目标时,将触发在EventTarget上注册的任何事件侦听器。尽管EventListeners上的所有EventTarget都保证由EventTarget收到的任何事件触发,但没有说明他们将接收关于EventListeners上的其他EventTarget事件的顺序。

目前DOM level 3 events specification现在说明了

实现必须确定当前目标的candidate event listeners。这必须是已按其注册顺序在当前目标上注册的所有事件侦听器的列表。 HTML5定义了听众registered through event handler attributes的排序。 [...]

最后,实现必须按顺序处理所有候选event handlers [...]

但是,我在DOM 4 draft中找不到对此行为的引用了。

© www.soinside.com 2019 - 2024. All rights reserved.