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 相关文章推荐
js获取提交的字符串的字节数
Feb 09 Javascript
Javascript和Ajax中文乱码吐血版解决方案
Dec 21 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
jQuery实现高亮显示网页关键词的方法
Aug 07 Javascript
详解iframe与frame的区别
Jan 13 Javascript
JavaScript制作简单分页插件
Sep 11 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
Jun 29 Javascript
详解angularjs实现echart图表效果最简洁教程
Nov 29 Javascript
Koa项目搭建过程详细记录
Apr 12 Javascript
Vue引入sass并配置全局变量的方法
Jun 27 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
Vue props中Object和Array设置默认值操作
Jul 30 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 和 MySQL 基础教程(一)
2006/10/09 PHP
PHP 调试工具Debug Tools
2011/04/30 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
PDO::errorInfo讲解
2019/01/28 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
python strip()函数 介绍
2013/05/24 Python
python非递归全排列实现方法
2017/04/10 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
小学教学随笔感言
2014/02/26 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
年底个人总结范文
2015/03/10 职场文书
《海上日出》教学反思
2016/02/23 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android