您当前的位置: 首页 > 

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

事件捕获和事件冒泡

发布时间:2021-04-18 14:02:11 ,浏览量:0

目录
  • 1、事件捕获
  • 2、事件冒泡
  • 3、事件捕获和事件冒泡同时存在
  • 4、总结
  • 5、扩展
1、事件捕获

事件捕获是从document开始发生,发生顺序一直向内,直到最后一个元素结束。

<div id="captureParent"> capture 父元素 <p id="captureChildren">capture 子元素 console.log('捕获 父元素'); }, true); captureChildren.addEventListener("click", function() { console.log('捕获 子元素'); }, true) 
2、事件冒泡

事件冒泡是从最内层元素开始发生,发生顺序一直向外,直到document冒泡才结束。

<div id="bubblingParent"> bubbling 父元素 <p id="bubblingChildren">bubbling 子元素 console.log('冒泡 父元素'); }, false); bubblingChildren.addEventListener("click", function() { console.log('冒泡 子元素'); }, false); 

在这里插入图片描述

3、事件捕获和事件冒泡同时存在
<div id="CBparent"> CB 父元素 <p id="CBchildren">CB 子元素 console.log("CBparent 捕获"); }, true); CBchildren.addEventListener("click", function() { console.log("CBchildren 捕获"); }, true); // 事件冒泡 CBparent.addEventListener("click", function() { console.log("CBparent 冒泡"); }, false); CBchildren.addEventListener("click", function() { console.log("CBchildren 冒泡"); }, false); 

在这里插入图片描述

4、总结

4.1、从 document 开始往被点击的节点捕获前进,遇到注册的捕获事件就立刻执行该事件。 4.2、到达被点击的节点后执行注册的事件。 4.3、执行完被点击的节点上的事件后,冒泡前进,遇到注册的冒泡事件就立刻执行该事件。

5、扩展

5.1、对于非点击的节点,先执行捕获再执行冒泡。 5.2、对于被点击的节点,按照顺序执行先注册的事件。

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3819s