jquery:delegate重复触发事件问题的解决办法
程序员文章站
2022-03-25 14:14:59
...
jquery:delegate重复触发事件问题的解决办法
<html> <head> <script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery.js"></script> <style> div{border:1px solid balck;padding:5px;margin:2px;} </style> </HEAD> <body> <div id="div1" >div1 <div id="div1_1" >div1_1 <div id="div1_1_1" >div1_1_1 <span style="background:red; display:block; width:25px; height:25px;">span</span> </div> </div> <div id="div1_2" >div1_2 </div> </div> </body> <script type="text/javascript"> $('body').delegate('body>div','click',function(){alert("div");}); $('body').delegate('div>span','click',function(){alert("span");}); </script> </HTML>
请问如何避免在点击span区域时不会触发div点击事件???
$('body').delegate('div>span','click',function(evt){ evt.stopPropagation(); alert("span"); } );
取消span的click事件冒泡,1楼已给出解答:e.stopPropagation()~
方法1.阻止事件冒泡
方法2.判断事件触发者,
$('body').delegate('body>div','click',function(){ if(e.target!=$('#div1_1_1').find('span')[0]) alert("div"); });
方法1.阻止事件冒泡
方法2.判断事件触发者,
$('body').delegate('body>div','click',function(){ if(e.target!=$('#div1_1_1').find('span')[0]) alert("div"); });
$('body').delegate('body>div','click',function(e){ if(e.target!=$('#div1_1_1').find('span')[0]) alert("div"); });
我试过了
以上就是jquery:delegate重复触发事件问题的解决办法的详细内容,更多请关注其它相关文章!
上一篇: css圆角边框代码怎么写?(代码示例)
推荐阅读
-
jquery mobile的触控点击事件会多次触发问题的解决方法
-
jquery的click事件缺陷问题:绑定class了但是在ajax拼接刷新后点击事件不起作用问题的解决办法
-
jquery live方法,解决jquery动态添加按钮无法触发点击事件的问题
-
jQuery的onclick事件导致点击事件累计触发的问题
-
解决jquery .on事件累计触发的问题
-
jQuery 防止相同的事件快速重复触发方法
-
解决jQuery ajax动态新增节点无法触发点击事件的问题
-
jquery触发select的change事件失效的问题解决
-
jquery:change事件不触发问题的解决办法
-
jQuery关于input的change事件不兼容的问题解决办法详解