单击元素时触发操作,但某些特定子元素时触发操作

时间:2010-04-08 07:54:33

标签: jquery

我有一个div,包含文字和一些链接。我想触发一个onclick事件,只有当点击发生在div的任何地方,而不是在任何链接上。

使用jQuery实现此目的的最佳方式(性能明智)是什么?

我使用的是

$('#div').click(function(){

});

但它会禁用所有#div>一个

2 个答案:

答案 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
   }
});