同一元素上的 JavaScript DOM 事件处理程序是否按注册顺序调用相同的事件和阶段?

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

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

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

已经被 DOM3 改变了!虽然 DOM 2 级事件规范确实指出了

当事件到达目标时,在该事件上注册的任何事件监听器

EventTarget
被触发。虽然都是
EventListeners
EventTarget
上保证由任何事件触发 收到后
EventTarget
无规格至 顺序 他们将收到与其他人有关的事件
EventListeners
EventTarget

当前的 DOM level 3 事件规范现在已经声明了

实现必须确定当前目标的候选者 事件监听器。 这必须是已注册的所有事件侦听器的列表 在当前目标上按照注册顺序

HTML5
定义通过事件处理程序注册的侦听器的顺序 属性。 […]

最后,实现必须处理所有候选

事件 处理程序 按顺序 […]

但是,我在

DOM 4 草案 中找不到对此行为的引用。

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