JavaScript阻止事件冒泡的方法


Posted in Javascript onDecember 06, 2021

我们需要注意的是:事件冒泡本身的特性,会带来的坏处,也会带来的好处,在后续的博客我会详细说明。

  • 所以我们在这里将论述一下如何阻止事件冒泡。
  • 比如现在有一个子盒子和一个父盒子,子盒子和父盒子二者都有点击事件,但是此时,当我们点击子盒子时,只想让子盒子显示点击事件。这里我们就要用到阻止事件冒泡的方法来隔断父盒子的事件显示。

先创建两个盒子,并给他们添加点击事件,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father{
            margin: 100px auto;
            width: 100px;
            height:100px;
            overflow: hidden;
            background-color: palegreen;
        }
        .son{
            width: 50px;
            height: 50px;
            margin-left: 25px;
            margin-top: 25px;
            background-color: paleturquoise;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
    <script>
        var father = document.querySelector('.father');
        var son = document.querySelector('.son');
       son.addEventListener('click',function(){
            alert('son');
        },false)
        father.addEventListener('click',function(){
            alert('father');
        },false)
    </script>
</body>
</html>

当我们点击子盒子的点击事件时,打印结果为:

JavaScript阻止事件冒泡的方法

我们应该怎样阻断父盒子的点击事件呢?

可以直接在子盒子内部的点击事件里面添加stopPropagation()方法,

如下所示:

son.addEventListener('click',function(e){
            alert('son');
            e.stopPropagation();
        },false)

此时,运行结果为:

JavaScript阻止事件冒泡的方法

阻断成功。

但是需要注意的是:这个方法也有兼容性问题,在低版本浏览器中(IE 6-8 )通常是利用事件对象cancelBubble属性来操作的。即直接在相应的点击事件里面添加:

e.cancelBubble = true;

 如果我们想要解决这种兼容性问题,就可以采用下述方法:

if(e && e.stopPropagation){
      e.stopPropagation();
  }else{
      window.event.cancelBubble = true;
  }

到此这篇关于基于JavaScript阻止事件冒泡的文章就介绍到这了,更多相关JavaScript阻止事件冒泡内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
ExtJS 2.0 GridPanel基本表格简明教程
May 25 Javascript
jQuery.getScript加载同域JS的代码
Feb 13 Javascript
JS获取当前日期时间并定时刷新示例
Mar 04 Javascript
实例讲解js验证表单项是否为空的方法
Jan 09 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
May 05 Javascript
jQuery选择器基础入门教程
May 10 Javascript
JQuery点击行tr实现checkBox选中的简单实例
May 26 Javascript
js控制台输出的方法(详解)
Nov 26 Javascript
解析微信JS-SDK配置授权,实现分享接口
Dec 09 Javascript
jQuery中DOM节点删除之empty与remove
Jan 20 Javascript
vue实现tab切换外加样式切换方法
Mar 16 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
Aug 17 Javascript
JavaScript执行机制详细介绍
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 #Vue.js
JavaScript 与 TypeScript之间的联系
JavaScript利用html5新方法操作元素类名详解
Nov 27 #Javascript
一文了解JavaScript用Element Traversal新属性遍历子元素
Nov 27 #Javascript
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 #Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 #Javascript
You might like
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
php实现的在线人员函数库
2008/04/09 PHP
php异常处理技术,顶级异常处理器
2012/06/13 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
Javascript调用C#代码
2011/01/17 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
美国百货齐全的精品网站,提供美式风格的产品:Overstock.com
2016/07/22 全球购物
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
搞笑爱情保证书
2014/04/29 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
十佳党员事迹材料
2014/08/28 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
教导处教学工作总结
2015/08/12 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书