我有一个div,包含文字和一些链接。我想触发一个onclick事件,只有当点击发生在div的任何地方,而不是在任何链接上。
使用jQuery实现此目的的最佳方式(性能明智)是什么?
我使用的是
$('#div').click(function(){
});
但它会禁用所有#div>一个
答案 0 :(得分:3)
您可以使用 :not() Selector
$("#div :not(a)").click(function(){
});
这会将click绑定到div中不是<a>
标记的所有元素。
$("#div").click(function(e){
if (e.target.tagName === "A")
{
return false;
}
else
{
alert("click");
}
});
这会将点击处理程序绑定到div本身,然后检查目标,如果它不是<a>
,则会显示警告。
答案 1 :(得分:2)
$('#div').bind('click', function(e){
if(e.target == this){
// do something
}
});