js中的事件冒泡和事件捕获

  • 他们是描述事件触发时序问题的术语。
  • 事件捕获指的是从document触发事件的那个节点,即自上而下的去触发事件。
  • 事件冒泡是从触发事件的那个节点document,自下而上的去触发事件。
  • 绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获。true事件捕获;false事件冒泡。默认false即事件冒泡。
  • Event对象的stopPropagation()方法会阻止冒泡,不再派发事件。
事件捕获

事件冒泡
示例:
<div id="parent">
  <div id="child" class="child"></div>
</div>

现在我们给它们绑定上事件

document.getElementById("parent").addEventListener("click",
function(e) {
    alert("parent事件被触发," + this.id);
});
document.getElementById("child").addEventListener("click",
function(e) {
    alert("child事件被触发," + this.id)
})

结果:
child事件被触发,child
parent事件被触发,parent
结论:先child,然后parent。事件的触发顺序自内向外,这就是事件冒泡。

现在改变第三个参数的值为true

document.getElementById("parent").addEventListener("click",
function(e) {
    alert("parent事件被触发," + e.target.id);
},
true);
document.getElementById("child").addEventListener("click",
function(e) {
    alert("child事件被触发," + e.target.id)
},
true)

结果:
parent事件被触发,parent
child事件被触发,child
结论:先parent,然后child。事件触发顺序变更为自外向内,这就是事件捕获。


笔记摘自[帅舅舅-博客园]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景知识 什么是事件?直观的说就是网页上发生的事情,大部分是指用户的鼠标动作和键盘动作,如点击、移动鼠标、按下某个...
    吧啦啦小汤圆阅读 5,876评论 2 15
  • 0.起因 前几天写业务的时候,碰到了这样的需求: checkbox在父DIV的里面,但是checkbox绑定了v-...
    CoderMageFox阅读 4,432评论 1 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,810评论 19 139
  • (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。 (2)捕获型...
    逍遥g阅读 3,169评论 2 0
  • 浓云卷铺遮烈阳, 霎时春风狂。 引雷响轰轰, 雨落滴滴, 尘土轻飞扬。 沿途漫步悠悠逛, 哪惧天边黄。 纵云海渺渺...
    刀秋水阅读 1,850评论 1 3

友情链接更多精彩内容