当你点击了一个事件的时候,系统会先从最外层进行捕获事件到此最深层的事件源,然后在从事件源冒泡到最外层的document。

简单的一个例子,认清事件的执行顺序:

注意IE8和Opera老版本仅支持冒泡事件,不支持捕获事件

<div class="box">
    <div class="box1"></div>
</div>

父元素和子元素都是捕获事件的时候: 结果为1,2
var box =document.getElementsByClassName('box')[0];
var box1 =document.getElementsByClassName('box1')[0];
box.addEventListener('click',function(){
    console.log(1);;
},true)
box1.addEventListener('click',function(){
    console.log(2);
},true)
父元素和子元素都是冒泡事件的时候: 结果为2,1
var box =document.getElementsByClassName('box')[0];
var box1 =document.getElementsByClassName('box1')[0];
box.addEventListener('click',function(){
    console.log(1);;
},false)
box1.addEventListener('click',function(){
    console.log(2);
},false)
父元素为捕获,子元素为冒泡的时候:返回1,2
var box =document.getElementsByClassName('box')[0];
var box1 =document.getElementsByClassName('box1')[0];
box.addEventListener('click',function(){
    console.log(1);;
},true)
box1.addEventListener('click',function(){
    console.log(2);
},false)
父元素为冒泡,子元素为捕获的时候:返回2,1
var box =document.getElementsByClassName('box')[0];
var box1 =document.getElementsByClassName('box1')[0];
box.addEventListener('click',function(){
    console.log(1);;
},false)
box1.addEventListener('click',function(){
    console.log(2);
},true)

事件 —【事件的捕获与冒泡】


相关文章:

  • 2021-11-26
  • 2021-07-13
  • 2022-01-09
  • 2021-11-27
  • 2021-05-30
  • 2021-11-04
  • 2022-12-23
  • 2021-11-27
猜你喜欢
  • 2021-06-05
  • 2022-12-23
  • 2021-09-29
相关资源
相似解决方案