如果我为单个DOM元素的单个事件附加多个事件处理程序,那么这些事件处理程序是否保证按照它们添加的顺序被调用?或者说我不应该依赖这种行为?
使用DOM3,这已经改变!而DOM level 2 events specification规范则说明
当事件到达目标时,任何在
EventTarget
上注册的事件侦听器都会被触发。虽然所有EventListeners
都保证会被任何接收到该EventTarget
的事件所触发,但没有规定它们将以何种顺序接收与其他EventListeners
相比的事件。
DOM level 3 events specification目前规定:
实现必须确定当前目标的待选事件监听器。 这必须是所有已在当前目标上注册的事件监听器列表按其注册顺序排序。
HTML5
定义了通过事件处理程序属性注册的监听器的排序方式。 [...]最后,实现必须按顺序处理所有候选的事件处理程序...
然而,我无法在DOM 4 draft中找到对此行为的参考。