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 相关文章推荐
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
Nov 21 Javascript
基于jquery完美拖拽,可返回拖动轨迹
Mar 29 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
JavaScript设计模式初探
Jan 07 Javascript
初步使用Node连接Mysql数据库
Mar 03 Javascript
浅谈JS使用[ ]来访问对象属性
Sep 21 Javascript
解析AngularJS中get请求URL出现的跨域问题
Dec 01 Javascript
jQuery 改变P标签文本值方法
Feb 24 jQuery
微信小程序聊天功能的示例代码
Jan 13 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
Apr 20 Javascript
使用vant的地域控件追加全部选项
Nov 03 Javascript
详解JavaScript 中的批处理和缓存
Nov 19 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
在PHP中使用灵巧的体系结构
2006/10/09 PHP
php PDO中文乱码解决办法
2009/07/20 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
修改jquery.lazyload.js实现页面延迟载入
2010/12/22 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
Vue自定义指令详解
2017/07/28 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
详解Python编程中time模块的使用
2015/11/20 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
高三体育教学反思
2014/01/29 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
工地标语大全
2014/06/18 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
优秀员工事迹材料
2014/12/20 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
工程合作意向书范本
2015/05/09 职场文书
杨善洲观后感
2015/06/04 职场文书
证婚人致辞精选
2015/07/28 职场文书
Python的这些库,你知道多少?
2021/06/09 Python