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

Jquery 单击元素时触发操作,但单击某些特定子元素时不触发操作,jquery,Jquery,我有一个div,包含文本和一些链接。我想触发onclick事件,仅当单击发生在div中的任何位置,而不是任何链接上时 使用jQuery实现此功能的最佳性能方式是什么 我用的是 $('#div').click(function(){ }); 但是它禁用了所有div>a您可以使用 这会将单击绑定到div中不是标记的所有元素 这会将单击处理程序绑定到div本身,然后检查目标,如果不是,则会显示警报。您可以使用 $('#div').bind('click', function(e){ if(e

我有一个div,包含文本和一些链接。我想触发onclick事件,仅当单击发生在div中的任何位置,而不是任何链接上时

使用jQuery实现此功能的最佳性能方式是什么

我用的是

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

});
但是它禁用了所有div>a

您可以使用

这会将单击绑定到div中不是标记的所有元素

这会将单击处理程序绑定到div本身,然后检查目标,如果不是,则会显示警报。

您可以使用

$('#div').bind('click', function(e){
   if(e.target == this){
        // do something
   }
});
这会将单击绑定到div中不是标记的所有元素


这会将单击处理程序绑定到div本身,然后检查目标,如果不是,则会显示警报。

这是因为您的选择器错误。您已经编写了$div:nota而不是$div:notadiv:nota,这将触发所有非子代的单击处理程序,但正如问题所述,不会在单击div本身的任何位置时触发。这是因为您的选择器错误。您已经编写了$div:nota而不是$div:notadiv:nota,这将触发所有非子代的单击处理程序,但正如问题所述,不会在单击div本身的任何位置时触发。
$('#div').bind('click', function(e){
   if(e.target == this){
        // do something
   }
});
$('#div').bind('click', function(e){
   if(e.target == this){
        // do something
   }
});