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 相关文章推荐
Z-Blog中用到的js代码
Mar 15 Javascript
Mootools 1.2教程 类(一)
Sep 15 Javascript
JS中 用户登录系统的解决办法
Apr 15 Javascript
JavaScript中的console.assert()函数介绍
Dec 29 Javascript
jQuery无刷新分页完整实例代码
Oct 27 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
解决Mac node版本升级失败的问题
May 16 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
Nov 26 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
Apr 26 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
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
php中变量及部分适用方法
2008/03/27 PHP
Javascript注入技巧
2007/06/22 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
详解JS数值Number类型
2018/02/07 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
python中使用序列的方法
2015/08/03 Python
Python实现简单的四则运算计算器
2016/11/02 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
python实现简单文件读写函数
2021/02/25 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
幼师专业求职推荐信
2013/11/08 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
军训教官感言
2014/03/02 职场文书
西安导游词
2015/02/12 职场文书
工会文体活动总结
2015/05/07 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书