JS阻止事件冒泡的方法详解


Posted in Javascript onAugust 26, 2019
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs"Inherits="Default5"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Porschev---Jquery 事件冒泡</title>

<script src="jquery-1.3.2-vsdoc.js" type="text/javascript"></script>

</head>
<body>
<form id="form1" runat="server">


<div id="divOne" onclick="alert('我是最外层');">



<div id="divTwo" onclick="alert('我是中间层!')">




<a id="hr_three" href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" mce_href="http://www.baidu.com" rel="external nofollow" rel="external nofollow" onclick="alert('我是最里层!')">点击我</a>



</div>


</div>

</form>
</body>
</html>

比如上面这个页面,

分为三层:divOne是第外层,divTwo中间层,hr_three是最里层;

他们都有各自的click事件,最里层a标签还有href属性。

运行页面,点击“点击我”,会依次弹出:我是最里层---->我是中间层---->我是最外层

---->然后再链接到百度.

这就是事件冒泡,本来我只点击ID为hr_three的标签,但是确执行了三个alert操作。

事件冒泡过程(以标签ID表示):hr_three----> divTwo----> divOne 。从最里层冒泡到最外层。

如何来阻止?

1.event.stopPropagation();

<script type="text/javascript">
    $(function() {
      $("#hr_three").click(function(event) {
        event.stopPropagation();
      });
    });
<script>

再点击“点击我”,会弹出:我是最里层,然后链接到百度

2.return false;

如果头部加入的是以下代码

<script type="text/javascript">
$(function() {
$("#hr_three").click(function(event) {


return false;

});
});
<script>

再点击“点击我”,会弹出:我是最里层,但不会执行链接到百度页面

由此可以看出:

1.event.stopPropagation();

事件处理过程中,阻止了事件冒泡,但不会阻击默认行为(它就执行了超链接的跳转)

2.return false;

事件处理过程中,阻止了事件冒泡,也阻止了默认行为(比如刚才它就没有执行超链接的跳转)

还有一种有冒泡有关的:

3.event.preventDefault();

如果把它放在头部A标签的click事件中,点击“点击我”。

会发现它依次弹出:我是最里层---->我是中间层---->我是最外层,但最后却没有跳转到百度

它的作用是:事件处理过程中,不阻击事件冒泡,但阻击默认行为(它只执行所有弹框,却没有执行超链接跳转)

以上就是本次介绍的全部知识点内容,感谢大家对三水点靠木的支持。

Javascript 相关文章推荐
调用innerHTML之后onclick失效问题的解决方法
Jan 28 Javascript
jQuery实现图片上传和裁剪插件Croppie
Nov 29 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
Jun 30 Javascript
基于javascript实现按圆形排列DIV元素(三)
Dec 02 Javascript
Bootstrap源码解读导航条(7)
Dec 23 Javascript
Angular.JS中的this指向详解
May 17 Javascript
js使用Promise实现简单的Ajax缓存
Nov 14 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
vue实现多级菜单效果
Oct 19 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
Dec 29 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
express框架中使用jwt实现验证的方法
Aug 25 #Javascript
JS异步处理的进化史深入讲解
Aug 25 #Javascript
Vue源码分析之Vue实例初始化详解
Aug 25 #Javascript
javascript导出csv文件(excel)的方法示例
Aug 25 #Javascript
JavaScript在web自动化测试中的作用示例详解
Aug 25 #Javascript
angularjs自定义过滤器demo示例
Aug 24 #Javascript
Jquery实现获取子元素的方法分析
Aug 24 #jQuery
You might like
Discuz! Passport 通行证整合
2008/03/27 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
php实现网页端验证码功能
2017/07/11 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
antd form表单数据回显操作
2020/11/02 Javascript
python基础教程之字典操作详解
2014/03/25 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
中国最大的团购网站:聚划算
2016/09/21 全球购物
土耳其国际性时尚购物网站:Modanisa
2018/01/19 全球购物
2014大学生全国两会学习心得体会
2014/03/13 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
趣味运动会简讯
2015/07/20 职场文书
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js