Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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 dom事件如何在捕获和冒泡阶段传播?_Javascript_Html_Events_Dom - Fatal编程技术网

Javascript dom事件如何在捕获和冒泡阶段传播?

Javascript dom事件如何在捕获和冒泡阶段传播?,javascript,html,events,dom,Javascript,Html,Events,Dom,我写的这个案子让我很困惑。不用多说,下面是代码: <body> <div id="b"> <div id='a'>TeTS</div> </div> </body> <script> var shitsauce = document.getElementById('a') shitsauce.addEventListener("click", function() { c

我写的这个案子让我很困惑。不用多说,下面是代码:

<body>
<div id="b">
    <div id='a'>TeTS</div>
</div>
</body>
<script>
    var shitsauce = document.getElementById('a')

    shitsauce.addEventListener("click", function() {
        console.log('a regular 1')
    })
    shitsauce.addEventListener("click", function() {
        console.log('a capture')
    }, true)
    shitsauce.addEventListener("click", function() {
        console.log('a regular 2')
    })
</script>

河豚
var shitsauce=document.getElementById('a')
shitsauce.addEventListener(“单击”,函数(){
console.log('常规1')
})
shitsauce.addEventListener(“单击”,函数(){
console.log('a capture')
},对)
shitsauce.addEventListener(“单击”,函数(){
console.log('a regular 2')
})
我假设点击元素“a”时,事件顺序为:

  • 俘虏
  • 普通的
  • a普通的2
但我看到的是:

  • 普通的
  • 俘虏
  • a普通的2

我认为所有捕获处理程序总是在任何非捕获处理程序之前执行。这是这里描述的方式:。为什么在本例中不会发生这种情况?

摘自:“注意:对于附加到事件目标的事件侦听器,事件处于目标阶段,而不是捕获和冒泡阶段。目标阶段的事件将触发元素上的所有侦听器,而不考虑
useCapture
参数。”使用你的
#a
中的另一个元素来点击。啊,好吧,这就是我所想的,可能是昨晚在床上的情况。哈哈。你应该把这个答案做成一个可能的副本