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 相关文章推荐
JavaScript 获取事件对象的注意点
Jul 29 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
May 11 Javascript
解析JavaScript中的字符串类型与字符编码支持
Jun 24 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
Apr 25 Javascript
vuejs父子组件之间数据交互详解
Aug 09 Javascript
分析JavaScript数组操作难点
Dec 18 Javascript
JavaScrip数组去重操作实例小结
Jun 20 Javascript
微信小程序如何连接Java后台
Aug 08 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
Nov 06 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
Feb 10 Javascript
SSM VUE Axios详解
Oct 05 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
56.com视频采集接口程序(PHP)
2007/09/22 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
简单了解django orm中介模型
2019/07/30 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
优秀共产党员推荐材料
2014/12/18 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏