javascript 中事件冒泡和事件捕获机制的详解


Posted in Javascript onSeptember 01, 2017

javascript 中事件冒泡和事件捕获机制的详解

二者作用:描述事件触发时序问题

事件捕获:从document到触发事件的那个节点,即自上而下的去触发事件---由外到内

事件冒泡:自下而上的去触发事件---由内到外

绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获

true,事件捕获;false,事件冒泡

一般默认false,即事件冒泡

Jquery的e.stopPropagation会阻止冒泡,意思就是到DOM为止,祖先级的事件就不要触发了 

下面是我尝试的例子:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <title>事件冒泡与事件捕获</title> 
  <script> 
    window.onload = function () { 
      document.getElementById("parent").addEventListener("click",function(e){ 
        alert("parent事件被触发,"+this.id); 
      },true) 
      document.getElementById("child").addEventListener("click",function(e){ 
        alert("child事件被触发,"+this.id) 
      },true) 
    } 
 
  </script> 
</head> 
<body> 
<div id="parent"> 
  parent事件 
  <div id="child" class="child"> 
  child事件 
  </div> 
</div> 
</body> 
</html>

 例子里我加了第三个true,是事件捕获。

如果不加则是默认的事件冒泡,这时候事件触发时序就是自内向外

以上就是javascript 中事件冒泡和事件捕获机制的详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
基于JQuery 的消息提示框效果代码
Jul 31 Javascript
妙用Jquery的val()方法
Jun 27 Javascript
JavaScript实现简单的数字倒计时
May 15 Javascript
JQuery之proxy实现绑定代理方法
Aug 01 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
jquery操作ul的一些操作笔记整理(干货)
Aug 31 jQuery
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
Vue组件和Route的生命周期实例详解
Feb 10 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
Apr 26 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
May 07 Javascript
实例讲解React 组件生命周期
Jul 08 Javascript
JavaScript中isPrototypeOf函数
Nov 07 Javascript
Vue的Class与Style绑定的方法
Sep 01 #Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 #Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
Sep 01 #Javascript
Angularjs实现上传图片预览功能
Sep 01 #Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 #Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 #Javascript
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 #jQuery
You might like
PHP 超链接 抓取实现代码
2009/06/29 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
原生JavaScript实现瀑布流布局
2020/06/28 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
javascript 构建模块化开发过程解析
2019/09/11 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
Python构造函数及解构函数介绍
2015/02/26 Python
批处理与python代码混合编程的方法
2016/05/19 Python
Python应用库大全总结
2018/05/30 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
python中xlrd模块的使用详解
2021/02/01 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
What is EJB
2016/07/22 面试题
2015年六一儿童节演讲稿
2015/03/19 职场文书
师德师风培训感言
2015/08/03 职场文书
宣传委员竞选稿
2015/11/19 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle