js事件三阶段与事件委托

首先明确一个概念,

js中事件包含三个阶段

  1. 捕获
  2. 到达目标
  3. 冒泡

 事件委托:将子元素上的事件委托给父元素监听,从而无需对每一个子元素设置监听事件。例如ul嵌套多个li,要点击时alert每个li的innerText

<ul id="ul">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
var ul=document.getElementById('ul');
function test(e){
    console.log(e.target.innerText);
}
ul.addEventListener('click',test,false);

addEventListener(event, cb,  true/false)

其中true代表捕获阶段执行,false代表冒泡阶段执行(默认false)。

二者区别在于事件被执行于不同的阶段,例如一个div>div的嵌套,捕获执行则先外后内,冒泡阶段先内后外

<div id="out">
    <div id="inner"></div>
</div>
var out=document.getElementById('out');
out.addEventListener('click',()=>{alert('out')},true);
var inner=document.getElementById('inner');
inner.addEventListener('click',()=>{alert('inner')},true);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值