当用户单击一个元素或其中的任何内容时,我需要触发一个事件,除非他单击一个<a>
元素。
这就是我现在正在尝试的:
$( "div:not(a)" ).click(function(e) {
alert("hello world");
});
您可以在这里更好地理解它:
我怎样才能做到这一点?
你可以使用:
$("div").click(function (e) {
if (e.target.nodeName.toLowerCase() != 'a') alert("hello world");
});
由于您div
的从来都不是a
,因此这是行不通的。
你必须检查你的目标元素是否有a
这样的标签:
$('div').click(function(event) {
var $target = $(event.target);
if(!$target.is("a") ) {
alert("hello world");
}
});
我已经更新了你的小提琴:看看
这是未经测试的,但希望能给你这个想法:
$(function(){
$('div').click(function(e){
if($(e.target).is('a')){
e.stopPropagation();
}
});
});