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 相关文章推荐
JS解析XML的实现代码
Nov 12 Javascript
jquery+easeing实现仿flash的载入动画
Mar 10 Javascript
JavaScript制作简易的微信打飞机
Mar 31 Javascript
深入理解Node.js中的进程管理
Mar 13 Javascript
浅谈通过JS拦截 pushState和replaceState事件
Jul 21 Javascript
关于vue.extend和vue.component的区别浅析
Aug 16 Javascript
简单的Vue SSR的示例代码
Jan 12 Javascript
从零开始封装自己的自定义Vue组件
Oct 09 Javascript
C#程序员入门学习微信小程序的笔记
Mar 05 Javascript
Vue如何基于es6导入外部js文件
May 15 Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
Nov 12 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中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
php多文件上传实现代码
2014/02/20 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
Jquery 常用方法经典总结
2010/01/28 Javascript
IE6下CSS图片缓存问题解决方法
2010/12/09 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
护理学中专毕业生求职信
2013/11/11 职场文书
实习单位接收函
2014/01/11 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
建议书标准格式
2014/03/12 职场文书
请假条怎么写
2014/04/10 职场文书
销售顾问工作计划书
2014/08/15 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript