关于JS中事件捕获,事件冒泡与事件代理(事件委托),及e.target与e.currentcurrentTarget的区别

事件捕获:

       表示事件的触发顺序,当绑定事件方法的第三个参数值设置为true时,事件触发的顺序为捕获。

       当一个元素的事件被触发的时候(如onclick事件),该事件会从document开始逐级向下传播,到当前触发事件的节点元素的点击事件。

设有一DIV,其父级元素绑定事件A,其本身绑定事件B,点击到这个DIV时执行的事件顺序为AB。

 

 

事件冒泡:

       表示事件的触发顺序,当绑定事件方法的第三个参数值设置为false时,事件触发的顺序为冒泡。这个参数不作设置时,默认值为false,即默认事件冒泡;

       当一个子元素的事件被触发的时候(如onclick事件),该事件会从事件源(被点击的子元素)开始逐级向上传播,触发父级元素的点击事件。

设有一DIV,其父级元素绑定事件A,其本身绑定事件B,点击到这个DIV时执行的事件顺序为BA。

 

事件代理/委托(本质是利用事件冒泡)

      利用事件冒泡处理动态元素事件绑定的方法,专业术语叫事件委托。

 

*事件委托案例题目(经典面试题):

<ul>

        <li>item1</li>

        <li>item2</li>

        <li>item3</li>    

</ul>

需求:鼠标放到li上对应的li背景变灰。且绑定的事件对动态添加的li元素有效。

答案:

$("ul").on("mouseover",function(e){

          //这里涉及到了e.target属性的使用

          $(e.target).css(CSS1).siblings().css(CSS2);

 })

有很多小白对这个属性并不是很理解,

e.target属性指向触发事件监听的对象,即如(click事件)点击的当前元素;

e. currentTarget属性指向添加监听事件的对象,即等同于this;

emmmmmm文字很难理解?那举个很简单的例子:

然后我们依次点击两个item:

看出差别了吗?是不是很清晰了?

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值