当用户点击某个元素或其中的任何内容时,我需要触发一个事件,除非他点击<a>
元素。
这就是我现在正在尝试的事情:
$( "div:not(a)" ).click(function(e) {
alert("hello world");
});
你可以在这里更好地理解它:
我该怎么做?
答案 0 :(得分:2)
您可以使用:
$("div").click(function (e) {
if (e.target.nodeName.toLowerCase() != 'a') alert("hello world");
});
<强> jsFiddle example 强>
答案 1 :(得分:2)
由于div
永远不是a
,因此无效。
您必须检查目标元素是否为a
标记,如下所示:
$('div').click(function(event) {
var $target = $(event.target);
if(!$target.is("a") ) {
alert("hello world");
}
});
我已更新你的小提琴:Have a look
答案 2 :(得分:1)
这是未经测试的,但希望能给你一个想法:
$(function(){
$('div').click(function(e){
if($(e.target).is('a')){
e.stopPropagation();
}
});
});