什么是事件冒泡?如何用jquery/js阻止事件冒泡?阻止冒泡有什么作用?小生来抛个砖。...

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    前言:有时候,当我们给一个外层 div 添加了一个‘click’事件,然而在内层的其他元素我们也为它添加了 ‘click’事件,那么当我们点击内层的元素时,外层的事件会响应吗?接下来我们就来一步一步解开这个问题吧!

    一、准备: 这里是一个三层模型

    <!--cs--><div class="outer"><div class="inner"><button class="btn">点击我</button></div></div>

     样式图:

223904_hImN_1242866.png

    二、分别绑定事件:

       $(function(){$('.outer').on('click', function(){console.log('我是最外面的DIV, 时间: ' + new Date().getMilliseconds());});$('.inner').on('click', function(){console.log('我是最里面的DIV, 时间: ' + new Date().getMilliseconds());});$('.btn').on('click', function(){console.log('我是按钮哦!, 时间: ' + new Date().getMilliseconds());});});

   三、 点击中间的按钮后:

225232_5k99_1242866.png

    四、现象:可以看见基本上是同一时间执行了,‘btn’上面的所有绑定了 ‘click’元素的click事件。这就是事件的冒泡带来的影响!要避免这样的现象发生,首先我们要清楚自己的目的是什么!这样就能很好的解决这个问题了,好了,废话不多说,return main;

    五、阻止:

        jQuery方式一,通过 返回 false 实现

            $('.btn').on('click', function(){console.log('我是按钮哦!, 时间: ' + new Date().getMilliseconds());return false; //阻止事件冒泡传播});

        方式二, 使用函数 event.stopPropagation();

            $('.btn').on('click', function(){console.log('我是按钮哦!, 时间: ' + new Date().getMilliseconds());event.stopPropagation();});

    六、结果验证:

230458_gVvB_1242866.png

    七、总结:

            1.一个事件起泡对应触发的是上层的同一事件 
            特殊:如果 outer 设置成双击事件,那么在你单击 btn 的时候就会起泡触发btn 和 inner 单击的事件 (这里注意双击包含单击)。 
            2.如果在click事件中,在你要处理的事件之前加上e.preventDefault(); 那么就取消了默认行为(通俗理解:相当于做了个return操作),不执行之后的语句了。(和阻止冒泡不是一回事);                                                     3.e.stopPropagation()只要在click事件中,就不会触发上层click事件。

    预告: 下一篇应该是BFC(块级格式化上下文)

转载于:https://my.oschina.net/leipeng/blog/220869

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在家做什么能让隔壁报警?| 今日最佳

全世界只有3.14 %的人关注了青少年数学之旅&#xff08;图源神店通缉令&#xff0c;侵权删&#xff09;

暴库也不怕!EF Core加密存储数据

针对某些数据字段要保存敏感数据的情况&#xff0c;比如银行卡号&#xff0c;我们需要使用一种机制保证存储到数据库的数据是加密的&#xff0c;避免数据泄露风险&#xff0c;但是又能够正常读取出来显示。下面我们用MySql演示如何操作。Demo创建一个ConsoleApp1&#xff0c;然…

[网摘]CSS z-index 属性

定位一直是WEB标准应用中的难点&#xff0c;如果理不清楚定位那么可能应实现的效果实现不了&#xff0c;实现了的效果可能会走样。如果理清了定位的原理&#xff0c;那定位会让网页实现的更加完美。 定位的定义&#xff1a; 在CSS中关于定位的内容是&#xff1a;position:relat…

JVM知识点总览:高级Java工程师面试必备

下面这篇文章汇集了阿里、美团、Oracle 等大厂的 JVM 考点&#xff0c;你是否能回答得上来&#xff1f; 什么是 Java 虚拟机&#xff1f;为什么 Java 被称作是“平台无关的编程语言”&#xff1f; Java 代码是怎么运行的&#xff1f; Java 虚拟机是如何加载 Java 类的? JVM…

2007最受欢迎的十大Ajax技术文章

DeveloperWorks 中国网站 Ajax 技术资源中心在 2007 年上半年里发表了很多和 Ajax 相关的技术文章、教程、多媒体课堂和专栏。我们特地整理出 2007 上半年最受读者欢迎的内容&#xff0c;希望通过这个排行榜&#xff0c;您可以了解最新的 Ajax 技术热点&#xff0c;及与 Ajax 开…

设计原则:色彩

背景 最初接触《彩色UML》的时候就给了我很大的触动&#xff0c;可惜一致没有内化这种触动&#xff0c;直到最近一次看“老大”画了一个彩色的分析图&#xff0c;又突然的重现了这种触动&#xff0c;然后在一个梦里内化了这种冲动&#xff0c;第二天发现团队的“贴纸”和“水笔…

中国移动云能力中心 Iaas 产品部软件开发工程师陈焱山:社区始于连接,也成就于连接...

社区始于连接&#xff0c;也成就于连接——陈焱山ApacheCon 是 Apache 软件基金会&#xff08;ASF&#xff09;的官方全球系列大会。作为久负盛名的开源盛宴&#xff0c;ApacheCon 在开源界备受关注&#xff0c;也是开源运动早期的知名活动之一。早在 1998 年&#xff0c;在 AS…

ZGY的Excel特征提取器初期版本完成

其实这个初期版本已经基本上把他要的功能都实现了&#xff0c;呵呵 他的要求是批量转Excel&#xff0c;把所有用黄色标出的单元格所在的列拷到一个新文件中 其实底层很简单&#xff0c;界面做了倒有一会&#xff0c;还是一如既往的喜欢SWT啊~ 附上Java利用Apache POI进行Excel文…

阿里大佬推荐初学者练习的 Java 开源项目

对于JAVA的新手来说&#xff0c;需要结合着相关书籍的学习和开源项目一起&#xff0c;才能达到比较好的效果。 在此推荐一些轻量级适合入门的JAVA开源项目&#xff0c;希望对题主的学习有所帮助。 项目名称&#xff1a;springboot-learning-example项目简介&#xff1a;sprin…

真·抬头发票!| 今日最佳

全世界只有3.14 %的人关注了青少年数学之旅&#xff08;图源迷惑行为大赏&#xff0c;侵权删&#xff09;

老歌新唱--使用VB6开发的ActiveX实现.NET程序的混淆加密

代码下载地址&#xff1a;http://files.cnblogs.com/wuhuacong/VBActiveX.rar 由于存在一下几种特点&#xff1a;1、.NET程序反编译容易&#xff0c;而使用一些混淆工具会导致有些程序不能运行2、VB6开发ActiveX控件&#xff0c;那叫一个快&#xff0c;VB代码也不是很容易被反编…

对C# 程序员来说现在是到目前为止最好的时代

本文的标题来自Scott Hanselman 的 Xamarin Evolve 2013 Talk Video - How C# Saved My Marriage&#xff0c;想写下这些东西主要是今天看到了CSDN的一个极客头条《观点&#xff1a;.NET向何处去&#xff1f;》和传智播客.Net学院&#xff1a;《LinuxMono公开课》的视频看了2个…

设计模式之适配器

适配器模式介绍介绍适配器模式的作用就是把原本不兼容的接口&#xff0c;通过适配修改到统一的过程&#xff0c;使得用户方便使用。在实际工作中&#xff0c; 有时候我们需要把各个业务线的各种类型服务做统一的包装&#xff0c;再对外提供接口进行使用。适配器模式要解决的主要…

Oracle9i卸载后再次安装,设置的SID相同出现“指定的SID在本机上已经存在。请指定一个不同的SID。”...

Oracle9.0.2卸载后再次安装&#xff0c;设置的SID相同出现“指定的SID在本机上已经存在。请指定一个不同的SID。” 记得阿都跟我说过要全部清除注册表。 但是考虑到出现相同的SID&#xff0c;类似于安装mssql时出现相同实例&#xff0c;我认为删除SID相关的注册表信息&#xff…

qsort(bsearch,lsearch)—标准库排序,查找

2019独角兽企业重金招聘Python工程师标准>>> //对字符串排序 #include<iostream> #include<cstdlib> #include<string.h> #define N 8 using namespace std; int compare(const void *a,const void *b); int main(void) {int i;char s[8][10] {&q…

三分钟教会你Java while循环中嵌套if

##[java的三种循环结构与循环嵌套] 循环结构&#xff1a; 语法&#xff0c;及执行顺序 语法&#xff1a; while(boolean类型){//功能语句}执行顺序&#xff1a; 1[断小括号中的值是否为true&#xff0c;如果为true&#xff0c;执行功能语句] 2[行完功能语句&#xff0c;继…

深入浅出理解索引结构

&#xff08;一&#xff09;深入浅出理解索引结构 实际上&#xff0c;您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引&#xff1a;聚集索引&#xff08;clustered index&#xff0c;也称聚类索引、簇集索引&#xff09;和非聚集索引&#xff08;noncluster…

中科大博士写外挂被抓,非法牟利300多万!

全世界只有3.14 %的人关注了青少年数学之旅近日&#xff0c;扬州警方破获一起中科大博士伙同他人在网上销售外挂软件非法牟利超过 300 万的案件。2016年6月&#xff0c;北京某游戏公司发现网上有款名为“冰焰”的外挂软件大量销售&#xff0c;给他们的网游造成了巨大损失这款外…

C# WPF MVVM项目实战(进阶②)

这篇文章还是在之前用Caliburn.Micro搭建好的框架上继续做的开发&#xff0c;今天主要是增加了一个用户窗体ImageProcessView&#xff0c;然后通过Treeview切换选择项之后在界面显示不同效果的图片。01—重要的知识点本篇内容基于CM框架编写&#xff0c;涉及以下知识点&#xf…

浏览器要是能这么做就好了

原文地址&#xff1a;http://www.laaan.cn/?p994 之前和搜狗浏览器的开发团队做过一些合作。主要是用户教育方便的事。需要他们给我开几个接口&#xff0c;让flash与浏览器通讯。都是很谨慎的。不过后来想一想&#xff0c;要是搜狗浏览器能开放一些接口供js或flash调用该有多好…