js中addEventListener中第3个参数(事件捕获过程和冒泡过程)

DOM事件流详解
本文深入解析了DOM事件流的概念,包括捕获阶段和冒泡阶段的工作原理,并通过实例展示了如何使用addEventListener来处理不同阶段的事件。
<div id="id1" style="width:200px; height:200px; position:absolute; top:100px; left:100px; background-color:blue; z-index:4">
      <div id="id2" style="width:200px; height:200px; position:absolute; top:20px; left:70px; background-color:green; z-index:1"></div>
  </div>

 addEventListener中的第三个参 数是useCapture, 一个bool类型。当为false时为冒泡获取(由里向外),true为capture方式(由外向里)。

document.getElementById('id1').addEventListener('click', function() { console.log('id1');}, false);
 
document.getElementById('id2').addEventListener('click', function() { console.log('id2');}, false);

 点击id2的div结果是: id2, id1

document.getElementById('id1').addEventListener('click', function() { console.log('id1');}, false);
 
document.getElementById('id2').addEventListener('click', function() { console.log('id2');}, true);

 结果是:id1,id2

 

DOM方法 addEventListener() 和 removeEventListener()是用来分配和删除事件的函数。 这两个方法都需要三个参数,分别为:

事件名称(String)、要触发的事件处理函数(Function)、指定事件处理函数的时期或阶段(boolean)。

DOM事件流如图(剪自javascript高级程序设计):



由图可知捕获过程要先于冒泡过程

当第三个参数设置为true就在捕获过程中执行,反之就在冒泡过程中执行处理函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值