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 相关文章推荐
自动更新作用
Oct 08 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
Javascript数组与字典用法分析
Dec 13 Javascript
Jquery中巧用Ajax的beforeSend方法
Jan 20 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
May 03 Javascript
想用好React的你必须要知道的一些事情
Jul 24 Javascript
JavaScript利用fetch实现异步请求的方法实例
Jul 26 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
JavaScript函数apply()和call()用法与异同分析
Aug 10 Javascript
自定义javascript验证框架示例【附源码下载】
May 31 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
js的Object.assign用法示例分析
Mar 05 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 字符串分割和比较
2009/10/06 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
TypeScript入门-接口
2017/03/30 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
python3.5使用tkinter制作记事本
2016/06/20 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
如何在Django项目中引入静态文件
2019/07/26 Python
python中return不返回值的问题解析
2020/07/22 Python
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
美国第一香水网站:Perfume.com
2017/01/23 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
在校大学生的职业生涯规划书
2014/03/14 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
会议简报格式范文
2015/07/20 职场文书