我有一个附加了onclick
事件的div。在这个div中有一个带有链接的标记。当我单击链接时,来自div的onclick
事件也会被触发。我如何才能禁用它,这样如果链接在div上被单击,onclick
就不会触发?
脚本:
$(document).ready(function(){
$(".header").bind("click", function(){
$(this).children(".children").toggle();
});
})
html代码:
<div class="header">
<a href="link.html">some link</a>
<ul class="children">
<li>some list</li>
</ul>
</div>
发布于 2010-03-03 00:13:11
执行以下操作:
$(document).ready(function(){
$(".header").click(function(){
$(this).children(".children").toggle();
});
$(".header a").click(function(e) {
e.stopPropagation();
});
});
发布于 2016-04-27 06:22:40
或者,您可以使用传递给click事件处理程序的Event Object参数来确定是否单击子对象,而不是使用额外的事件处理程序来防止另一个处理程序。target
将是被单击的元素,currentTarget
将是.header div:
$(".header").click(function(e){
//Do nothing if .header was not directly clicked
if(e.target !== e.currentTarget) return;
$(this).children(".children").toggle();
});
发布于 2015-07-23 18:34:46
更好的方式是将on()与链接一起使用,如
$(document).ready(function(){
$(".header").on('click',function(){
$(this).children(".children").toggle();
}).on('click','a',function(e) {
e.stopPropagation();
});
});
https://stackoverflow.com/questions/2364629
复制相似问题