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

IT技术 javascript dom events event-handling dom-events
2021-02-23 14:48:31

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

1个回答

DOM3已经改变一点虽然DOM 级别 2 事件规范确实指出

当事件到达目标时,EventTarget 会触发在 上注册的任何事件侦听器 虽然所有EventListenersEventTarget都保证通过由接收到的任何事件触发EventTarget不规范作出的顺序,他们将与问候其他接收事件 EventListenersEventTarget

当前的DOM 级别 3 事件规范现在声明

实现必须确定当前目标的候选事件侦听器这必须是已在当前目标上按注册顺序注册的所有事件侦听器的列表HTML5 定义通过事件处理程序属性注册的侦听器的顺序[…]

最后,实现必须按顺序处理所有候选事件处理程序 […]

但是,我在DOM 4 草案中再也找不到对这种行为的引用了。

答案似乎已经过时。不幸的是,当前的 DOM 级别 3 规范不再包含有关候选事件侦听器的引用段落。
2021-04-17 14:48:31
@thomasrutter:是的,几乎 - 他们只标准化他们实施的内容。
2021-04-26 14:48:31
据推测,如果这来自 HTML5,则意味着当前的浏览器已经这样做了,您认为吗?
2021-05-14 14:48:31