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 相关文章推荐
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
Jan 09 Javascript
In Javascript Class, how to call the prototype method.(three method)
Jan 09 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 Javascript
移动端脚本框架Hammer.js
Dec 15 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 jQuery
JS实现留言板功能
Jun 17 Javascript
vue-infinite-loading2.0 中文文档详解
Apr 08 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
小程序富文本提取图片可放大缩小
May 26 Javascript
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
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多线程类及用法实例
2014/12/03 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
PHP实现事件机制的方法
2015/07/10 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
SVG实现时钟效果
2018/07/17 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
如何运行带参数的python脚本
2019/11/15 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
毕业生自我鉴定实例
2014/01/21 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
活动总结新闻稿
2014/08/30 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
听证会主持词
2015/07/03 职场文书