Created by Jerry Wang, last modified on Jun 06, 2015

source link: http://www.ido321.com/1570.html
这个example 有一个陷阱,如果测试用的script不写在window.ready事件里,将得不到效果。

事件捕获和事件冒泡是事件流中的两个阶段,任何事件产生时,如点击一个按钮,将从最顶端的容器开始(一般是html的根节点)。浏览器会向下遍历DOM树直到找到触发事件的元素
点击button 1:

target: button

至此target node处理完了,继续处理hierarchy树的下一个节点:body. 此时event.target 还是button:

然后继续处理body下面的div 节点:

找到目的节点了:

一旦浏览器找到该元素,事件流就进入事件目标阶段,该阶段完成后,浏览器会沿DOM树向上冒泡直到最顶层容器,看看是否有其它元素需要使用同一个事件。

大多数现代库使用冒泡监听,而在捕获阶段处理。浏览器包含一个方法来管理事件冒泡。事件处理程序可以调用stopPropagation告诉DOM事件停止冒泡

第二个方式是调用stopImmediatePropagation,它不仅停止冒泡,也会阻止这个元素上其它监听当前事件的处理程序触发。然而,停止传播事件时要小心,因为你不知道是否有其它上层的DOM元素可能需要知道当前事件。

This example also shows how to raise and catch custom event via jQuery:

JavaScript事件处理的例子:事件捕捉和冒泡 - event capture and bubble相关推荐

  1. javascript的阻止默认事件和阻止冒泡事件

    这两个方面的知识,在妙味课堂中有听过,再次复习一下: 原文来自:[http://www.cnblogs.com/Essence/p/4266618.html] 事件冒泡与默认行为 在说事件冒泡之前,我 ...

  2. JavaScript: 最简单的事件代理(JS Event Proxy)原理代码

    打开 http://jsbin.com (JS练兵场),方便尝试使用案例代码. 假设有HTML <ul id="parent-list"><li id=" ...

  3. Javascript事件模型系列(二)事件的捕获-冒泡机制及事件委托机制

    一.事件的捕获与冒泡 由W3C规定的DOM2标准中,一次事件的完整过程包括三步:捕获→执行目标元素的监听函数→冒泡,在捕获和冒泡阶段,会依次检查途径的每个节点,如果该节点注册了相应的监听函数,则执行监 ...

  4. JavaScript 详说事件机制之冒泡、捕获、传播、委托

    DOM事件流(event  flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(event  capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会 ...

  5. JavaScript 详说事件流(冒泡、捕获、传播、委托)

    事件流 事件流描述的是从页面中接收事件的顺序. 标准DOM事件流存在三个阶段:事件捕获阶段.处于目标阶段和事件冒泡阶段. 事件捕获:当触发事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元 ...

  6. JavaScript高级程序设计笔记 事件冒泡和事件捕获

    1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body><div> click me!</div> < ...

  7. 理清“事件捕捉”和“事件冒泡”

    "事件捕捉"和"事件冒泡"是基于DOM节点树上的DOM事件流,他会以特定的顺序在DOM节点树上进行传播 DOM节点树: 我们看一下事件捕捉和事件冒泡的基本定义 ...

  8. 事件模型、事件流(冒泡与捕获)、事件代理

    本文原链接:https://www.cnblogs.com/hngdlxy143/p/9068282.html https://www.jb51.net/article/139997.htm 事件模型 ...

  9. JavaScript与HTML交互——事件

    JavaScript和HTML的交互是通过事件实现的.JavaScript采用异步事件驱动编程模型,当文档.浏览器.元素或与之相关对象发生特定事情时,浏览器会产生事件.如果JavaScript关注特定 ...

最新文章

  1. 使用Python,OpenCV,本地二进制模式(LBP)进行人脸识别
  2. mastercam2017安装教程
  3. (转)WPF中让窗体不显示最大化,最小化,关闭按钮
  4. 学习笔记(58):Python实战编程-Combobox
  5. java判断光标位置_Java如何知道光标的当前位置?
  6. 如何开启VMware串口
  7. 标准输入输出 stdio 流缓冲 buffering in standard streams
  8. 安川西格玛7驱动器手册_安川伺服驱动说明书7.pdf
  9. ESP8266串口转wifi模块AT指令调试TCP通信
  10. 如何让语音芯片与功放芯片之间更好地配合让音效更好
  11. 三甲川荧光染料Cy3DIGE NHS ester,Cy3DIGE琥珀酰亚胺活化酯,Cyanine3DIGE 活化酯,Ex:555nmEm:569nm
  12. python普通类实现接口_python3从零学习-5.8.1、socket—底层网络接口
  13. androbench跑分性能排查
  14. 单引号和0的ASCII码
  15. 纯原生 js 简易 实现 鼠标拖尾效果
  16. DockerHub使用
  17. BJDCTF 2nd WEB
  18. CentOS 6/7 搭建SOCKS5代理服务
  19. 哥伦比亚大学计算机科学本科申请,哥伦比亚大学计算机科学申请要求有哪些?...
  20. 2018年年底Android悲催的面试之路

热门文章

  1. java 中iterator 和 collection接口源码
  2. springMVC通过spring.xml对属性注入bean值(工厂模式)
  3. bundle传递对象与Serializable、Parcelable接口理解和思考
  4. Excel隐藏的数据处理技巧
  5. SAP UI5 初学者教程之十四 - 嵌入视图的使用方式试读版
  6. SAP Hybris Commerce Cloud Accelerator Storefront 在 Eclipse 中的调试
  7. SAP 电商云 Spartacus UI 4.1 版本的延迟加载技术介绍
  8. 乐高(LEGO)在线购物店面剖析
  9. ABAP Development Tool 代码模板和其他一些实用技巧汇总
  10. SAP Spartacus pop over 元素的单元测试