什么是JS事件冒泡?...(摘自网络) 如何来阻止Jquery事件冒泡?...事件冒泡 ...这就是事件冒泡,本来我只点击ID为hr_three的标签,但是确执行了三个alert操作。 事件冒泡过程(以标签ID表示):hr_three----> divTwo----> divOne 。...“点击我”,会弹出:我是最里层,但不会执行链接到百度页面 由此可以看出: 1.event.stopPropagation(); 事件处理过程中,阻止了事件冒泡,但不会阻击默认行为(它就执行了超链接的跳转
事件冒泡的示例 编写三个嵌套的div,同时绑定click事件,来演示事件冒泡。 ?...只单单点击了一次黄色的div,但是却弹出了三个alert(),这种就如同冒泡一样,逐个从底部元素传递到上级的元素。...再次点击看看,如下: ? ? ? 事件冒泡示例的结论 可以看出点击黄色div,依然会依次弹出三个alert()。...说明这个click()事件的传递并不是根据点击位置,而是根据html元素的嵌套。...事件冒泡机制有时候是不需要的,需要阻止掉,通过 event.stopPropagation() 来阻止 阻止上面点击黄色div的click()冒泡传递 ?
这是一个段落。 <button onclick="active()">切换</button> <script> $(document).ready...
这是一个段落。
取消默认冒泡事件的三种方式 1.通过返回false来取消默认的行为并阻止事件起泡 $(element).click(function(){ return false; }) 2.通过使用preventDefault...$(element).click(function(e){ e.preventDefaule(); }) 3.通过使用stopPropagation()方法阻止事件起泡 $(element).click
在工作中,经常用到js的点击事件,有好多种表现形式,今天抽空总结一下它们的区别与联系。废话不多说,开始写测试案例。首先声明,本人水平有限,如果有错误之处,还请指正。...一、.点击事件,用到的有 1:$(".J_edit_save").on('click',function(e){}; 2:$('#J_new').click(function(e){}); 3:$('... hideOrShow click me 静态点击事件...其次,在js操作的效率上: $('body').on('click', '#btn_delete', function() {});方式为运用事件冒泡,有效减少内存的占用 。...原理为首先确定第一个标签$('body')的位置,再在下面搜索#btn_delete的位置,执行click事件 冒泡方式的恰当运用为: $('.action-box').on('click', '#btn-add
解决#btn的事件冒泡,使用return false; ? 在阻止了#btn按钮的click()事件冒泡到$(document)之后,那么弹框就可以正常显示了。...这个思路不涉及事件冒泡的阻止,但是属于同一个click()方法的阻止,因为点击$(document)的click()事件应该不会冒泡到它下面的元素.pop,不过可以在这里验证一下。...验证点击$(document)的click()事件是否会冒泡至下方的元素.pop 在.pop写一个alert()就可以验证出来了。 ?...点击#close后,正常执行fadeOut(),并且在.pop处已经截断了事件冒泡,所以在#close的 click()最后不用写return false;。...写到这里基本已经演示完了关于事件冒泡的弹框示例了。 完整代码 <!
2.解决思路: 比如可以把button换掉;阻止keydown事件的默认行为preventDefault等。...3.举例说明: 1.阻止浏览器的默认行为 function stopDefault(e) { if(e && e.preventDefault) { //如果提供了事件对象,则这是一个非IE...中阻止函数器默认动作的方式 window.event.returnValue = false; } return false; } 2.停止事件冒泡...(); //因此它支持W3C的stopPropagation()方法 } else { //否则,我们需要使用IE的方式来取消事件冒泡 window.event.cancelBubble... } } function stopDefault(e) { if(e && e.preventDefault) { //如果提供了事件对象
背景 在开发过程中,明明调试好的阻止冒泡没有问题,但是真正使用 时候发现阻止冒泡失效了,原来原因是点击事件里依赖了异步返回结果。...{ i.addEventListener("click",function (e) { console.log("i",i) // 阻止冒泡...console.log("i",i) doReport(reportList, timeout).then(() => { // 阻止冒泡...ev.cancelBubble = true; } }) }) } doReport是一个上报方法,这里要等待上报完成之后再执行点击逻辑...,会导致阻止冒泡失效。
(e.target).closest("#menu").length == 0 && $(e.target).closest("#open").length == 0){ //点击
上一篇文章介绍中使用a的弹窗方式测试孔href属性,但是最近在一个项目中发现click事件执行后会多次触发.应该是点击事件进行叠加了,jquery的unbind()可以解决此问题....('a').unbind('click').click(function(){ alert('执行一次弹窗'); }) 这个使用ubind('click'),完美取消掉叠加在元素身上的事件
因为按钮在文档内,所以会产生事件冒泡使得在点按钮打开菜单时无法正常执行。所以我们需要阻止事件冒泡。例子代码如下: <!...green;} span{display:block;width:100px;height:30px;background-color:skyblue;} 消失的盒子 //点span显示盒子 $("span").click( function(){ event.stopPropagation()//阻止事件冒泡
点击按钮的时候,被点击按钮颜色变化,其他按钮要保持不变。 <!...margin: 100px auto; } <script src="<em>jquery</em>.min.js...,被<em>点击</em>按钮颜色变化,其他按钮要保持不变。...margin: 100px auto; } <script src="jquery.min.js...,被点击按钮颜色变化,其他按钮要保持不变。
前言 因为博皮当前版本有人反馈文章中标题导航点击无法生成; jquery-click-invalid: https://codesandbox.io/s/jquery-click-invalid-forked-xpt352...内容 一开始我以为是svg导致的点击事件失效,但是看来下代码结构,发现两者并不关联; 开始觉得问题应该出现在.html()方法上,因为文章这块在博皮上是没做什么调整的,所以直接看博客园的blog-common.min.js...; 通过显示目录导航关键字进行搜索,就发现了关键之处,JQuery动态的添加元素,导致事先绑定的click事件失效了,因为.click只适用于静态元素; ?...既然问题找到了,那修复起来就很快了; 因为我们无法改变blog-commom.min.js,所以通过改变自己博皮代码进行修复; 原来代码 通过.html()进行组合,这样导致button对应的click事件失效
运行程序 点击“内部BTN: 结果如图所示 大家可以看到 事件是从外层容器到内层容器依次执行的 4....刷新页面 点击“外部BTN” 结果如图所示 因为事件的引发者没有在panl1中所以不会再触发panel1的事件了 以上说的都是非冒泡事件,事件的执行顺序是从外层容器到内层容器执行的 5....是false 这样设置后就是冒泡事件,事件的执行顺序是从内层容器到外层容器执行的 6....如果即要捕捉非冒泡事件,又要捕捉冒泡事件 那么 创建事件的代码为 var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一个参数...);//非冒泡监听 this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//冒泡监听 这样设置之后,事件先从外部执行到内部
/jquery-1.11.0.min.js" type="text/javascript"> ...-- li在ul里,ul在div中,只要点击了li,也就是点击了ul,也就是点击了div。...在上面的函数中,先弹出 “我是li”然后弹出“我是ul”,最后弹出“我是div” 一层一层的冒泡,而阻止冒泡的方式就是调用 事件的对象来调用stopPropagation()方法。...这个事件的对象就是函数的参数 e 这个e的名字可以随便取--> 请点击我 说明...: 1.一个事件起泡对应触发的是上层的同一事件 单击two的时候就会起泡触发one单击的事件。
什么是冒泡? DOM事件流(event flow )存在三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。...事件捕获*(****event capturing****)*:通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会从根节点开始由外到内进行事件传播,即点击了子元素,如果父元素通过事件捕获方式注册了对应的事件的话...事件冒泡**(***dubbed bubbling***)**:与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点。...dom标准事件流的触发的先后顺序为:先捕获再冒泡,即当触发dom事件时,会先进行事件捕获,捕获到事件源之后通过事件传播进行事件冒泡。...) }); 输出结果(点击div2的时候执行的结果) ?
javascript 的事件捕获和事件冒泡之前一直没能弄明白,知道看到一个例子。...利用丢一颗石头入水的例子,就能够非常形象了,如图所示: 事件捕获和事件冒泡就像是一颗石头(点击事件)投入水中: 首先是最外层水面(html)接触(捕获)石头,然后石头下沉,内层的水(body/dom...当石头到达池塘底部(事件被捕获)之后,产生了一个气泡,然后就开始了冒泡阶段 由底部(目标元素)产生的气泡,由内而外,不断向上冒泡,直到最外面(html标签)结束。...点击可查看示例 去示例中试一试便清楚了~ 处理事件 理解了事件的捕获和冒泡机制,对于事件处理就好办了。...,比如是在‘石头’下沉或者‘气泡’冒泡的过程中使之突然消失 事件代理: 从上面事件机制可以看出,如果没有外部干扰,在子节点上触发的事件,在捕获和冒泡最终都会经过父节点 因此,我们可以将事件处理函数绑定在父节点上面
先上结论: 他们是描述事件触发时序问题的术语。事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件。相反的,事件冒泡是自下而上的去触发事件。...绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获。true,事件捕获;false,事件冒泡。默认false,即事件冒泡。...Jquery的e.stopPropagation会阻止冒泡,意思就是到我为止,我的爹和祖宗的事件就不要触发了。...事件的触发顺序自内向外,这就是事件冒泡。...事件触发顺序变更为自外向内,这就是事件捕获。 方法: 阻止事件冒泡 和默认行为。 事件冒泡: ? 阻止默认行为: ?
height: 100px; background: blue; } $(function() { //“冒泡事件:微软提出的 事件由子元素传递到父元素的过程...$(".son").click(function(event) { // return false;//不仅阻止了事件往上冒泡,而且阻止了事件本身。...event.stopPropagation();//则只阻止事件往上冒泡,不阻止事件本身。...}); //“冒泡事件:微软提出的 事件由子元素传递到父元素的过程,叫做冒泡” //但是在实际项目开发中,我们可能并不需要元素的默认行为,所以就可以通过以下方式进行禁止。
content="IE=edge"> 我的操作 屠龙宝刀,点击就送...内部设置为 true 即代表复制出来的元素同样具备初始标签的 clone 方法 // 如果后面遗忘了,可是把 this 去掉,点击其他生成按钮 // 妈的...,学你妈的前端啊,心真累... } ); setInterval(f, 10) 11.关于事件的冒泡 我的事件冒泡...function(event){ alert("儿子辈的"); event.stopPropagation() // 阻止事件向上级冒泡
领取专属 10元无门槛券
手把手带您无忧上云