直接上代码:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>.first {width: 500px;height: 500px;background-color: #0000cc;}.second {width: 300px;height: 300px;background-color: yellow;}</style>
</head><body><!--第一层DIV-->
<div class="first"><!--第二层DIV--><div class="second"><!--第三层中有个button--><input type="button" value="click" class="btn" /></div>
</div><script type="text/javascript">window.onload = function () {register();};function register() {//获取div以及buttonlet div1 = document.getElementsByClassName('first')[0];let div2 = document.getElementsByClassName('second')[0];let btn = document.getElementsByClassName('btn')[0];//为三个目标标签注册点击事件div1.addEventListener('click', func, false);div2.addEventListener('click', func, false);btn.addEventListener('click', func, false);}function func() {let dict = {'1': '捕获阶段','2': '处于目标阶段','3': '冒泡阶段'};alert(this.className.toLowerCase() + '的事件在' + dict[event.eventPhase] + '被触发');}</script></body>
</html>

先看一下运行效果:

现在点击按钮,会弹出三个对话框:

看到这里,聪明的你再稍微思考一下,应该就懂得事件冒泡了,可以把代码中addEventListener中的false改为true,然后再看一下运行效果,然后你就理解事件捕获了。

一个有助于理解事件冒泡和事件捕获的例子相关推荐

  1. JS 事件冒泡和事件捕获

    原文:https://www.cnblogs.com/qq9694526/p/5653728.html JS 事件冒泡和事件捕获 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jq ...

  2. addeventlistener事件第三个参数_简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序...

    这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 javascript给DOM绑定事件处理函数总的来说有2种方式:在htm ...

  3. 你真的理解事件绑定、事件冒泡和事件委托吗?

    一文了解Web API中的事件绑定.事件冒泡.事件委托 引言 正文 一.事件绑定 1.事件和事件绑定时什么? 2.事件是如何实现的? 二.事件冒泡 1.事件模型 2.事件模型解析 (1)捕获阶段 (2 ...

  4. “约见”面试官系列之常见面试题第三十四篇之事件冒泡、事件捕获、事件代理(建议收藏)

    对于事件的传播机制,Netscape Communicator采用的是事件捕获(event capture),IE9.Safari.Chrome.Opera和Firefox采用的是事件冒泡(event ...

  5. 事件冒泡 vs 事件捕获 vs 事件委托 的区别

    事件冒泡 vs 事件捕获 vs 事件委托 本主要用于理解这JS的这三种事件的专业术语所表述的意义: 在学校,听老师讲解事件冒泡和事件捕获机制的时候跟听天书一样,只依稀记得IE使用的是事件冒泡,其他浏览 ...

  6. 简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序

    JavaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序 这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 jav ...

  7. 事件委托、事件冒泡与事件捕获

    目录 事件委托: 1.原理 2.实现 ①在介绍事件委托的方法之前,我们先来看一段一般方法的例子: ②那么我们用事件委托的方式做又会怎么样呢? ③要是每个li被点击的效果都不一样,那么用事件委托还有用吗 ...

  8. Javascript中的事件捕获、事件冒泡与事件委托

    看以下简单的三层div结构. <div id="grandparent"><div id="parent"><div id=&qu ...

  9. [JS] 事件冒泡,阻止事件冒泡,事件的三个阶段(捕获,目标,冒泡)

    事件冒泡 添加三个套在一起的div元素,在最里面放一个button,感受事件触发时从里到外"冒泡"的过程. 给每个div都加一个事件:点击时就alert test.html < ...

  10. javascript中的事件冒泡、事件捕获和事件执行顺序

    谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有 ...

最新文章

  1. SwiftSuspenders 1.6-深入浅出1
  2. 从分布式到微服务,深挖Service Mesh
  3. vue项目中开启Eslint碰到的一些问题及其规范
  4. 如何卸载pip 重新安装mysql_pip install cymysql失败的解决办法 | 厘米天空
  5. python点击按钮创建进程_python-创建进程的三种方式
  6. 编程实现newton插值c++_数据体操:数据处理和IDW地理插值算法
  7. 【英语学习】【WOTD】vox populi 释义/词源/示例
  8. Java之LockSupport详解
  9. GTK测试程序(十四)
  10. 用python把视频转换为图片
  11. 51单片机间接寻址C语言,51单片机寄存器间接寻址方式与举例
  12. Google AdSense注册流程
  13. 安装磁盘阵列卡的方法
  14. arm mali 天梯图_手机最新CPU天梯图 2018年12月手机最新处理器排名表
  15. Cocos2d之Box2d基础知识
  16. SD-WAN,改善网络现状
  17. uniapp踩坑(五):监听手机物理返回键和滑动返回事件
  18. 一篇文章入门Spring
  19. C#入门4——计算自由落体运动
  20. ArcGis辅助编号功能的插件式实现

热门文章

  1. [转载] python选择排序二元选择_选择排序:简单选择排序(Simple Selection Sort)
  2. [转载] pickle:让python对象序列化
  3. [转载] Python 从字符串匹配相同元素的所有下标位置(两种办法解析)
  4. Navicat的使用,连表查询,python代码操作sql语句
  5. 关于学习web的自制roadmap
  6. 基于SOC方案的嵌入式开发-远程定时设备
  7. P3032 [USACO11NOV]二进制数独Binary Sudoku
  8. linux 多CPU
  9. Windows性能计数器分析
  10. C++ Primer Plus学习(四)—— string类实践