理解jquery事件冒泡

前端之家收集整理的这篇文章主要介绍了理解jquery事件冒泡前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、什么是jquery事件冒泡

在很多教材或者手册都可能会涉及到事件冒泡的概念,老手来说这当然是最基本的概念,但往往对于初学者可能比较陌生或者说从来没有听说过。下面就结合代码实例来简单介绍一下什么是事件冒泡。 代码实例如下:

<Meta charset=" gb2312"> 事件冒泡@H_<a href="/tag/301/" target="_blank" class="keywords">301</a>_7@ <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#second").click(function(){ alert("我是second"); }) $("#first").click(function(){ alert("我是first"); }) }) </script> </head> <body> <p id="first"><a id="second" href="http://www.baidu.com">点击查看<a href="/tag/xiaoguo/" target="_blank" class="keywords">效果</a></a></p> </body> </html></pre> </div> <p>在以上<a href="/tag/daima/" target="_blank" class="keywords">代码</a>中,我们可能只想点击锚点后弹出“我是third”,但是令人奇怪的事情却是所有父元素定义的click事件都会被触发。这就是一个典型的事件冒泡<a href="/tag/xiaoguo/" target="_blank" class="keywords">效果</a>。所谓的冒泡事件就是,如果在某一个对象上触发某一类事件(如上例的click事件),那么此事件会向对象的父级对象传播,并触发父对象上定义的同类事件。事件传播的方向是从最底层到最顶层,类似于水泡从水底浮上来一般。 <h3>二、javascript如何阻止事件冒泡</h3> 冒泡事件能够带来便利,有时候也会带来麻烦,下面就简单介绍一下如何阻止事件冒泡。 <a href="/tag/daima/" target="_blank" class="keywords">代码</a>实例如下: </p> <div class="jb51code"> <pre class="brush:xhtml;"> <!DOCTYPE html> <html> <head> <<a href="/tag/Meta/" target="_blank" class="keywords">Meta</a> charset=" utf-8"> <head> <title>事件冒泡@H_<a href="/tag/301/" target="_blank" class="keywords">301</a>_7@ <style type="text/css"> #grandfather{ border:1px solid #0066FF; cellpadding:0px; cellspacing:0px; } #grandfather td{ border: 1px solid #0066FF; } </style> <script type="text/javascript"> function trclick(){ alert("父亲的onclick事件触发"); } function tableclick(){ alert("祖父的onclick事件触发"); } window.onload=function(){ var grandfather=document.getElementById("grandfather"); var father=document.getElementById("father"); var noStop=document.getElementById("noStop"); var haveStop=document.getElementById("haveStop"); <p>grandfather.onclick=tableclick;<br /> father.onclick=trclick;</p> <p>noStop.onclick=function(){<br /> alert("没有阻止冒泡的子元素");<br /> }<br /> haveStop.onclick=function(evt){<br /> alert("阻止冒泡的子元素");<br /> if(window.event){<br /> event.cancelBubble=true;<br /> }<br /> else if(evt){<br /> evt.stopPropagation();<br /> }<br /> }<br /> }</p> </script> </head> <body> <table width="204" id="grandfather"> <tr > <td width="96"></td> <td width="96"></td> </tr> <tr id="father"> <td id="noStop">没有阻止事件冒泡</td> <td id="haveStop">阻止了事件冒泡</td> </tr> <tr> <td> </td> <td> </td> </tr> </table> </body> </html></pre> </div> <p><a href="/tag/daima/" target="_blank" class="keywords">代码</a>注释: 1.if(window.event)这个用来兼容IE8和IE8一下浏览器。 2. evt.stopPropagation()这个是标准浏览器。</p> <p>以上<a href="/tag/daima/" target="_blank" class="keywords">代码</a>中,一个单元格阻止了事件冒泡,一个没有阻止事件冒泡,希望对大家的学习有所帮助。 </p></div> <div class="topcard-tags"><a href="/tag/jqueryp/" class="tag_link" target="_blank">jquery</a><a href="/tag/shijianmaopao/" class="tag_link" target="_blank">事件冒泡</a></div> <ul class="list-group"> <li class="list-group-item"><a href="/jquery/50786.html" title="jquery实现简单的全选和反选功能">上一篇:jquery实现简单的全选和反选功能</a><a href="/jquery/50766.html" title="jQuery自动完成插件completer附源码下载" class="text-muted pull-right">下一篇:jQuery自动完成插件completer附源码</a> </li> </ul> </div> </div> </div> <!-- row end --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-4605373693034661" data-ad-slot="9144498553"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> </div> </div> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <div class="title"><h1>猜你在找的jQuery相关文章</h1></div> <div class="list_con"> <a href="/jquery/994522.html" title="《锋利的jQuery》笔记:插件的使用和写法"><div class="title">《锋利的jQuery》笔记:插件的使用和写法</div> <div class="summary">jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div class="list_con"> <a href="/jquery/994521.html" title="jQuery插件开发入门"><div class="title">jQuery插件开发入门</div> <div class="summary">扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div class="list_con"> <a href="/jquery/994520.html" title="jquery.roundabout.js实现3D图片层叠旋转木马切换"><img class="lazy" src="/images/np.jpg" data-original="/res/2020/12-28/08/dffb45ce0cf3e295e280f6fb71053099.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">jquery.roundabout.js实现3D图片层叠旋转木马切换</div> <div class="summary">最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div class="list_con"> <a href="/jquery/994519.html" title="jQuery效果之jQuery实现图片的依次加载图片"><div class="title">jQuery效果之jQuery实现图片的依次加载图片</div> <div class="summary">css代码: js代码:</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div class="list_con"> <a href="/jquery/994518.html" title="jQuery之deferred对象详解"><div class="title">jQuery之deferred对象详解</div> <div class="summary">一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div><div class="list_con"> <a href="/jquery/994516.html" title="jQuery插件开发进阶"><img class="lazy" src="/images/np.jpg" data-original="/res/2020/12-28/08/cf0a3ddd7df38e4fd13375e560fd833a.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">jQuery插件开发进阶</div> <div class="summary">jQuery插件开发模式 软件开发过程中是需要一定的设计模式来指导开发的,有了模式,我们就能...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div class="list_con"> <a href="/jquery/994515.html" title="jQuery 实现邮箱输入自动提示功能:(一)"><img class="lazy" src="/images/np.jpg" data-original="/res/2020/12-28/08/495a5225e66f1d897f5b3ccf684c9dd1.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">jQuery 实现邮箱输入自动提示功能:(一)</div> <div class="summary">记得去年做某个项目的时候,用到了邮箱输入自动提示功能,于是网上搜了一下,发现了这个写...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div class="list_con"> <a href="/jquery/994514.html" title="jQuery插件之上传文件ajaxfileupload.js源码与使用"><div class="title">jQuery插件之上传文件ajaxfileupload.js源码与使用</div> <div class="summary">在网页应用中,一般会用到上传文件或者图片什么的到服务器,那么可以用ajaxfileupload.js,...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div class="list_con"> <a href="/jquery/994513.html" title="jQuery效果之封装一个文章图片弹出放大效果"><div class="title">jQuery效果之封装一个文章图片弹出放大效果</div> <div class="summary">首先先搭写一个基本的格式: 然后用自调用匿名函数包裹你的代码,将系统变量以变量形式传递...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div class="list_con"> <a href="/jquery/994512.html" title="《从零开始学习jQuery》:用jQuery操作元素的属性与样式"><img class="lazy" src="/images/np.jpg" data-original="/res/2020/12-28/08/c7ddac708bcf22aec7f66ac24509d2ca.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">《从零开始学习jQuery》:用jQuery操作元素的属性与样式</div> <div class="summary">元素属性和Dom属性简介 对于下面这样一个标签元素: 我们通常将id,src,alt,class称为属性,也...</div> <time class="summary">作者:前端之家 时间:2020-12-28</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div></div> </div> </div> </div> <!-- left end--> <!-- right --> <div class="col-sm-12 col-md-12 col-lg-3"> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">编程分类</label> <div class="cate mt-20"><a href="/html/" title="HTML">HTML</a><a href="/html5/" title="HTML5">HTML5</a><a href="/js/" title="JavaScript">JavaScript</a><a href="/css/" title="CSS">CSS</a><a href="/jquery/" title="jQuery">jQuery</a><a href="/bootstrap/" title="Bootstrap">Bootstrap</a><a href="/angularjs/" title="Angularjs">Angularjs</a><a href="/typescript/" title="TypeScript">TypeScript</a><a href="/vue/" title="Vue">Vue</a><a href="/dojo/" title="Dojo">Dojo</a><a href="/json/" title="Json">Json</a><a href="/electron/" title="Electron">Electron</a><a href="/nodejs/" title="Node.js">Node.js</a><a href="/extjs/" title="extjs">extjs</a><a href="/express/" title="Express ">Express </a><a href="/xml/" title="XML">XML</a><a href="/es6/" title="ES6">ES6</a><a href="/ajax/" title="Ajax">Ajax</a><a href="/flash/" title="Flash">Flash</a><a href="/unity/" title="Unity">Unity</a><a href="/react/" title="React">React</a><a href="/flex/" title="Flex">Flex</a><a href="/antdesign/" title="Ant Design">Ant Design</a><a href="/webfrontend/" title="Web前端">Web前端</a><a href="/weapp/" title="微信小程序">微信小程序</a><a href="/wxmp/" title="微信公众号">微信公众号</a><div class="clearfix"></div> </div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">最新文章</label> <ul class="n-list"><li><a href="/jquery/994522.html" title="《锋利的jQuery》笔记:插件的使用和写法" target="_blank">• 《锋利的jQuery》笔记:插</a></li> <li><a href="/jquery/994521.html" title="jQuery插件开发入门" target="_blank">• jQuery插件开发入门</a></li> <li><a href="/jquery/994520.html" title="jquery.roundabout.js实现3D图片层叠旋转木马切换" target="_blank">• jquery.roundabout.js实现</a></li> <li><a href="/jquery/994519.html" title="jQuery效果之jQuery实现图片的依次加载图片" target="_blank">• jQuery效果之jQuery实现图</a></li> <li><a href="/jquery/994518.html" title="jQuery之deferred对象详解" target="_blank">• jQuery之deferred对象详解</a></li> <li><a href="/jquery/994517.html" title="jQuery 对AMD的支持(Require.js中如何使用jQuery)" target="_blank">• jQuery 对AMD的支持(Requ</a></li> <li><a href="/jquery/994516.html" title="jQuery插件开发进阶" target="_blank">• jQuery插件开发进阶</a></li> <li><a href="/jquery/994515.html" title="jQuery 实现邮箱输入自动提示功能:(一)" target="_blank">• jQuery 实现邮箱输入自动提</a></li> <li><a href="/jquery/994514.html" title="jQuery插件之上传文件ajaxfileupload.js源码与使用" target="_blank">• jQuery插件之上传文件ajax</a></li> <li><a href="/jquery/994513.html" title="jQuery效果之封装一个文章图片弹出放大效果" target="_blank">• jQuery效果之封装一个文章</a></li> </ul> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">热门标签 <span class="pull-right tx-12"> <a href="/all" target="_blank">更多 ►</a></span> </label> <div class="topcard-tags"><a href="/tag/guanbiyangao/" title="关闭广告" target="_blank">关闭广告</a><a href="/tag/danduheaders/" title="单独headers" target="_blank">单独headers</a><a href="/tag/fengzhuangdaima/" title="封装代码" target="_blank">封装代码</a><a href="/tag/tishicuowu/" title="提示错误" target="_blank">提示错误</a><a href="/tag/zhengshuzhengze/" title="整数正则" target="_blank">整数正则</a><a href="/tag/fei0kaitou/" title="非0开头" target="_blank">非0开头</a><a href="/tag/tiaoye/" title="跳页" target="_blank">跳页</a><a href="/tag/chuyema/" title="出页码" target="_blank">出页码</a><a href="/tag/antdtable/" title="antd table" target="_blank">antd table</a><a href="/tag/tishiURLweizhuce/" title="提示URL未注册" target="_blank">提示URL未注册</a><a href="/tag/gongzhonghaozhifu/" title="公众号支付" target="_blank">公众号支付</a><a href="/tag/vuehashmoshi/" title="vue hash模式" target="_blank">vue hash模式</a><a href="/tag/iSlider/" title="iSlider" target="_blank">iSlider</a><a href="/tag/chepaijianpan/" title="车牌键盘" target="_blank">车牌键盘</a><a href="/tag/xunhuantupian/" title="循环图片" target="_blank">循环图片</a><a href="/tag/echartsshuangzhexian/" title="echarts 双折线" target="_blank">echarts 双折</a><a href="/tag/zuoyoubuju/" title="左右布局" target="_blank">左右布局</a><a href="/tag/DllPlugin/" title="DllPlugin" target="_blank">DllPlugin</a><a href="/tag/duixiangchuangjian/" title="对象创建" target="_blank">对象创建</a><a href="/tag/daziyouxi/" title="打字游戏" target="_blank">打字游戏</a><a href="/tag/quanxuan/" title="圈选" target="_blank">圈选</a><a href="/tag/lianglan/" title="两栏" target="_blank">两栏</a><a href="/tag/yunhanshu/" title="云函数" target="_blank">云函数</a><a href="/tag/mengban/" title="蒙版" target="_blank">蒙版</a><a href="/tag/ES2020/" title="ES2020" target="_blank">ES2020</a><a href="/tag/chuchuang/" title="橱窗" target="_blank">橱窗</a><a href="/tag/wufenggundonglunbo/" title="无缝滚动轮播" target="_blank">无缝滚动轮播</a><a href="/tag/sekuaipengzhuang/" title="色块碰撞" target="_blank">色块碰撞</a><a href="/tag/zujianxiaohui/" title="组件销毁" target="_blank">组件销毁</a><a href="/tag/wendangcaozuo/" title="文档操作" target="_blank">文档操作</a></div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> </div> <!-- right end --> </div> </div> <footer id="footer"> <div class="container"> <div class="row hidden-xs"> <dl class="col-sm-6 site-link"> <dt>最近更新</dt><dd><a href="/win11/1005328.html" title="小米手机重装系统价格多少?专业维修服务详解" target="_blank">· 小米手机重装系统价格多少?专业维修服务详解</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005327.html" title="手把手教你重装电脑系统,让你的电脑焕然一新!" target="_blank">· 手把手教你重装电脑系统,让你的电脑焕然一新!</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005326.html" title="教你一步步重装XP系统,让你的电脑重获新生" target="_blank">· 教你一步步重装XP系统,让你的电脑重获新生</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005325.html" title="从备份到上网:一步步教你重装电脑系统" target="_blank">· 从备份到上网:一步步教你重装电脑系统</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005324.html" title="Sony笔记本电脑一键重装系统详细图文教程" target="_blank">· Sony笔记本电脑一键重装系统详细图文教程</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005323.html" title="Lenovo笔记本重装系统超详细教程,小白也能轻松上手" target="_blank">· Lenovo笔记本重装系统超详细教程,小白也能轻松...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005322.html" title="联想笔记本一键重装Win10系统详细教程" target="_blank">· 联想笔记本一键重装Win10系统详细教程</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005321.html" title="电脑系统故障无需愁,专业维修店帮你重装旧貌换新颜" target="_blank">· 电脑系统故障无需愁,专业维修店帮你重装旧貌换新...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005320.html" title="联想笔记本一键重装Win10系统图文教程,小白也能轻松搞定!" target="_blank">· 联想笔记本一键重装Win10系统图文教程,小白也能...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005319.html" title="笔记本重装系统图文教程:从光盘启动一步到位" target="_blank">· 笔记本重装系统图文教程:从光盘启动一步到位</a><span class="text-muted pull-right">02-05</span></dd> </dl> <dl class="col-sm-4 site-link"> <dt>好站推荐</dt><dd> <a href="https://www.runoob.com" title="菜鸟教程(www.runoob.com)提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。" target="_blank">菜鸟教程</a></dd><dd> <a href="https://www.jb51.cc" title="编程之家(www.jb51.cc)是成立于2017年面向全球中文开发者的技术内容分享平台。提供编程导航、编程问答、编程博文、编程百科、编程教程、编程工具、编程实例等开发者最需要的编程技术内容与开发工具支持,与你一起学习编程,相信编程改变未来!" target="_blank">编程之家</a></dd><dd> <a href="" title="前端之家 f2er.com 前端开发人员所需学习知识手册。" target="_blank">前端之家</a></dd></dl> <dl class="col-sm-2 site-link"> <dt>商务合作</dt> <dd><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=76874919&site=qq&menu=yes">联系我们</a></dd> </dl> </div> <div class="copyright"> Copyright © 2019 前端之家. 当前版本 V7.0.16<br> <span class="ml5">前端之家 版权所有 <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">闽ICP备13020303号-10</a></span> </div> </div> </footer> <script type="text/javascript" src="/js/base.js"></script> </body> </html>