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 相关文章推荐
Javascript Ajax异步读取RSS文档具体实现
Dec 12 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
Dec 29 Javascript
jQuery实现获取table表格第一列值的方法
Mar 01 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
Aug 25 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
Jun 29 Javascript
JavaScript requestAnimationFrame动画详解
Sep 14 Javascript
vue.js  父向子组件传参的实例代码
Oct 29 Javascript
JavaScript插入排序算法原理与实现方法示例
Aug 06 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
Sep 17 Javascript
在vue中高德地图引入和轨迹的绘制的实现
Oct 11 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
Sep 16 Javascript
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php实现微信模板消息推送
2018/03/30 PHP
验证手机号码的JS方法分享
2013/09/10 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
nodejs基础知识
2017/02/03 NodeJs
非常实用的vue导航钩子
2017/03/20 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
详解Django配置JWT认证方式
2020/05/09 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
Python 必须了解的5种高级特征
2020/09/10 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
医学生求职自荐信
2013/10/25 职场文书
中班幼儿评语大全
2014/04/30 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
出国导师推荐信
2015/03/25 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
五年级作文之想象作文
2019/10/30 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang