让我们考虑以下 html
<div id='outer'>
Outer Tag
<div id='inner'>Inner Tag</div>
</div>
应用事件
var outer = document.getElementById('outer'),
inner = document.getElementById('inner');
outer.addEventListener('click',function(){
console.log('Outer Clicked!')
}, false);
outer.addEventListener('click',function(){
console.log('Outer Captured!')
}, true); // event capture flag set to true
inner.addEventListener('click',function(){
console.log('Inner Clicked!')
}, false);
所以现在,我们已经应用了事件,当我们点击输出时,正如预期inner element
的那样,应该如下
外拍!
内部点击!
外点击!
但是,如果我们inner span
从上面的 html 中删除,那么在冒泡阶段之后似乎会触发捕获阶段,如下所示
外点击!
外拍!
谁能解释为什么会这样?