Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 事件侦听器指向第一个调用的同一事件目标_Javascript_Dom_Javascript Events_Event Handling - Fatal编程技术网

Javascript 事件侦听器指向第一个调用的同一事件目标

Javascript 事件侦听器指向第一个调用的同一事件目标,javascript,dom,javascript-events,event-handling,Javascript,Dom,Javascript Events,Event Handling,如果我将两个事件侦听器注册到同一事件目标。将首先调用哪个事件处理程序 例如: document.addEventListener("click", function() { // do something 1 }, true); // using the capturing phase document.addEventListener("click", function() { // do something 2 }, true); // using the capturin

如果我将两个事件侦听器注册到同一事件目标。将首先调用哪个事件处理程序

例如:

document.addEventListener("click", function() {
    // do something 1
}, true); // using the capturing phase

document.addEventListener("click", function() {
    // do something 2
}, true); // using the capturing phase
我在w3c规范中没有找到我的答案


回答问题时增加了粗体强调(通过w3c规范:)

首先,实施必须确定当前目标。这必须是部分传播路径中的下一个挂起事件目标,从第一个开始。从事件侦听器的角度来看,这必须是侦听器已注册的事件目标

接下来,实现必须确定当前目标的候选事件侦听器。这必须是按注册顺序在当前目标上注册的所有事件侦听器的列表。[HTML5]定义通过事件处理程序属性注册的侦听器的顺序。一旦确定,不得更改候选事件侦听器;添加或删除侦听器不会影响当前目标的候选事件侦听器

最后,实现必须按顺序处理所有候选事件处理程序,并在满足以下所有条件时触发每个处理程序

我个人一直依赖这种行为,我没有看到现代浏览器的行为与规范描述的不同。

在不同的浏览器中尝试它可能会重复,Google Chrome和Firefox似乎是按添加侦听器的顺序添加的。说明:“已按注册顺序在当前目标上注册的所有事件侦听器的列表”和“实现必须按顺序处理所有候选事件处理程序”。