冒泡事件:比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡。

<div class="box"><button class="btn">按钮</button>
</div><script type="text/javascript">$('.btn').click(function () {alert('按钮被点击了')});$('.box').click(function () {alert('box被点击了')})
</script>

当我们点击按钮后,因为按钮也属于.box元素,所以按钮的父元素.box也会触发点击事件

阻止冒泡事件有三种方法:

1.event.stopPropagation()方法

 $('.btn').click(function (even) {even.stopPropagation();alert('按钮被点击了');})

这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开。
例如:

<a href="https://www.csdn.net/" class="box"><button class="btn">按钮</button>
</a>

2.event.preventDefault()方法

 $('.btn').click(function (even) {even.preventDefault();alert('按钮被点击了');})

这是阻止默认事件的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素;

3.return false ;

 $('.btn').click(function (even) {alert('按钮被点击了');return false;})

这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件;写上此代码,连接不会被打开,事件也不会传递到上一层的父元素;可以理解为return false就等于同时调用了event.stopPropagation()和event.preventDefault()

JS中阻止冒泡事件的三种方法相关推荐

  1. jQuery阻止冒泡事件的几种方法

    一.何为冒泡事件 冒泡事件简单来说就是点击子节点,会向上触发父节点.祖先节点的点击事件. 二.阻止事件冒泡 可以通过以下三种方法做到不同程度的阻止. 1.return false (In event ...

  2. js中设置元素class的三种方法小结

    一.el.setAttribute('class','abc'); 复制代码 代码如下: <!DOCTYPE HTML> <HTML> <HEAD> <met ...

  3. js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法

    js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法 示例 1.基础版 var a = { id: 18, age: 20, name: "zhangsan" ...

  4. JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析

    JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析 业务分析 初版的问题 解决方案 传统的 for 循环 不使用 for 循环的解决方案 分析 forEach ...

  5. Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...

    Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn   发布于:2012-09-15 ...

  6. python csv库,Python 中导入csv数据的三种方法

    Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文 ...

  7. mysql在计算机管理中的路径怎么修改_Rstudio中修改工作路径的三种方法

    原文链接: Rstudio中修改工作路径的三种方法_weixin_44370085的博客-CSDN博客_rstudio改变工作目录​blog.csdn.net Rstudio中修改工作路径的三种方法 ...

  8. 计算机启动应用程序的方法,excel的程序_Excel2010中启动应用程序的三种方法

    使用Excel时,需要先启动应用程序,怎么去进行操作启动它?今天,学习啦小编就教大家在Excel2010中启动应用程序的三种方法. Excel2010中启动应用程序的三种步骤如下: 1.开始菜单 在桌 ...

  9. js获取DIV的位置坐标的三种方法!

    js获取DIV的位置坐标的三种方法! 方法一: var odiv=document.getElementById('divid'); alert(odiv.getBoundingClientRect( ...

最新文章

  1. linux 数据库创建和还原
  2. Nat. Commun. | 多层生物分子网络的鲁棒性研究
  3. RYU控制器的学习笔记(一) ryu.app.rest_router的分析
  4. 云服务器下行_腾讯云轻量应用服务器简单测评
  5. java多态的简单例子_要JAVA的简单例子,继承\多态的,详细讲解运行的每一步
  6. C# 委托和事件 (三)
  7. php mysql多表关联删除_MySQL中多表删除方法
  8. 基本入门的C/C++算法总结
  9. 使用QT编写视频播放器总结
  10. unity怎么显示骨骼_Unity3D 骨骼动画原理学习笔记
  11. 显示器分辨率一直跳_常见屏幕比例与显示器分辨率详解
  12. pip使用详解/pip换源
  13. win10支持8t 硬盘_最快最简单!Win10 正式版硬盘安装方法详解
  14. 面试常问问题: 剖析ArrayList源码还不会? 看这篇就够啦 !
  15. zzzfun网站连接不上服务器,ZzzFun
  16. 苹果id登录_英雄联盟手游用苹果id登录显示账号异常的解决方法_英雄联盟手游...
  17. 【烧录问题】flymcu下载出现从08000000开始运行失败
  18. 2020-12-2 IDEA2020.2 提示Typo:In word ‘XXXX’ 解决方法
  19. python列表(list)的遍历
  20. 朴素贝叶斯模型简单理解

热门文章

  1. Android中的内存泄漏和内存溢出
  2. 面试官:Ajax 原理是什么?如何实现?
  3. 【题解】poj3696 The Luckiest number 欧拉函数+快速幂
  4. C++类static成员函数的调用
  5. 一图看懂Linux发行版本分支;不同应用方向选择建议
  6. 科学计算机 标准差,用科学计算器计算方差和标准差
  7. 淘宝图片尺寸怎么修改?电脑怎么修改图片尺寸大小?
  8. loj#10166数字游戏
  9. luogu CF817D Imbalanced Array【单调栈】
  10. CF817D Imbalanced Array