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 相关文章推荐
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
Feb 14 Javascript
Javascript 键盘事件的组合使用实现代码
May 04 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
Aug 22 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
Feb 10 Javascript
js判断手机号运营商的方法
Oct 23 Javascript
新手学习前端之js模仿淘宝主页网站
Oct 31 Javascript
JavaScript闭包和范围实例详解
Dec 19 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
Jul 10 Javascript
深入理解Vue 的钩子函数
Sep 05 Javascript
JavaScript中的this/call/apply/bind的使用及区别
Mar 06 Javascript
Javascript异步编程async实现过程详解
Apr 02 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
类之Prototype.js学习
2007/06/13 Javascript
Javascript 刷新全集常用代码
2009/11/22 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
开始着手第一个Django项目
2015/07/15 Python
用Django实现一个可运行的区块链应用
2018/03/08 Python
python实现朴素贝叶斯算法
2018/11/19 Python
python各种excel写入方式的速度对比
2020/11/10 Python
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
前台接待的工作职责
2013/11/21 职场文书
打架检讨书50字
2014/01/11 职场文书
初中同学聚会感言
2014/02/11 职场文书
创新比赛获奖感言
2014/02/13 职场文书
教师对学生的寄语
2014/04/03 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
教师求职信怎么写
2015/03/20 职场文书
行政处罚听证告知书
2015/07/01 职场文书
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
python中filter,map,reduce的作用
2022/06/10 Python
详解flex:1什么意思
2022/07/23 HTML / CSS