JS html事件冒泡和事件捕获操作示例


Posted in Javascript onMay 01, 2019

本文实例讲述了JS html事件冒泡和事件捕获操作。分享给大家供大家参考,具体如下:

今天学习了事件冒泡和捕获,记录一下。

1.冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。

我一般用法就是理解为触发事件A, 会触发A的父亲,爷爷,爷爷的父亲......

代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>点击事件捕获冒泡实验</title>
</head>
<body>
<div id="grandPa">
  <div id="father">
    <div id="son">
      <input type="button" value="click"/>
    </div>
  </div>
</div>
<script type="text/javascript">
  var father = document.getElementById('father');
  father.addEventListener('click',function () {
    alert('fattther');
  })
  var son = document.getElementById('son');
  son.addEventListener('click',function () {
    alert('son');
  });
</script>
</body>
</html>

点击button,会以此弹出"son", "father"。

2.捕获事件:使用事件捕获时,父级元素先触发,子级元素后触发。

我们使用addEventListener添加监听事件时,参数分别为(事件类型, function(){}, capture), 一般不写第三个参数时默认为false,即事件冒泡。

所以1中的代码会是事件冒泡顺序。如果我们想改为事件捕获,把参数设置为true即可,代码如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>点击事件捕获冒泡实验</title>
</head>
<body>
<div id="container">
  <div id="father">
    <div id="son">
      <input type="button" value="click"/>
    </div>
  </div>
</div>
<script type="text/javascript">
  var father = document.getElementById('father');
  father.addEventListener('click',function () {
    alert('fattther');
  },true)
  var son = document.getElementById('son');
  son.addEventListener('click',function () {
    alert('son');
  });
</script>
</body>
</html>

这样当你点击button后就会以此弹出"father",  "son"了。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 获取对象 定位子对象
May 31 Javascript
javascript学习笔记(十一) 正则表达式介绍
Jun 20 Javascript
JS字符串处理实例代码
Aug 05 Javascript
javaScript对文字按照拼音排序实现代码
Dec 27 Javascript
js控制iframe的高度/宽度让其自适应内容
Apr 09 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
JavaScript中的函数重载深入理解
Aug 04 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
Aug 03 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
Sep 28 Javascript
javascript中可能用得到的全部的排序算法
Mar 05 Javascript
Javascript ParentNode和ChildNode接口原理解析
Mar 16 Javascript
Vue触发input选取文件点击事件操作
Aug 07 Javascript
JS实现的贪吃蛇游戏案例详解
May 01 #Javascript
javascript原型链学习记录之继承实现方式分析
May 01 #Javascript
微信小程序实现卡片左右滑动效果的示例代码
May 01 #Javascript
微信小程序常见页面跳转操作简单示例
May 01 #Javascript
浅谈对于react-thunk中间件的简单理解
May 01 #Javascript
vue增加强缓存和版本号的实现方法
May 01 #Javascript
vue组件化中slot的基本使用方法
May 01 #Javascript
You might like
用PHP来写记数器(详细介绍)
2006/10/09 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
thinkphp缓存技术详解
2014/12/09 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
js实现列表按字母排序
2020/08/11 Javascript
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
python speech模块的使用方法
2020/09/09 Python
python Paramiko使用示例
2020/09/21 Python
python用Configobj模块读取配置文件
2020/09/26 Python
Django celery异步任务实现代码示例
2020/11/26 Python
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
播音主持专业个人自我评价
2014/01/09 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
教师校本培训方案
2014/02/26 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
六一儿童节开幕词
2015/01/29 职场文书
五年级作文之想象作文
2019/10/30 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
JavaScript 反射学习技巧
2021/10/16 Javascript
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python