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 相关文章推荐
在b/s开发中经常用到的javaScript技术
Aug 23 Javascript
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 Javascript
JavaScript 学习笔记之基础中的基础
Jan 13 Javascript
jQuery学习笔记之创建DOM元素
Jan 19 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
jquery实现网页定位导航
Aug 23 Javascript
js使用highlight.js高亮你的代码
Aug 18 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
Jan 18 jQuery
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 Javascript
vue实现列表滚动的过渡动画
Jun 29 Javascript
JavaScript如何操作css
Oct 24 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来自动调用不同服务器上的flash
2006/10/09 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
jquery tools之tooltip
2009/07/25 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
2019/02/13 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
python实现BackPropagation算法
2017/12/14 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
python enumerate内置函数用法总结
2020/01/07 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
python实现学生通讯录管理系统
2021/02/25 Python
python 对xml解析的示例
2021/02/27 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
知识竞赛拉拉队口号
2014/06/16 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
辩护词格式
2015/05/22 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js