我正在尝试将.click()
事件用于div.content
,除非点击具有特定类的内容,例如.noclick
。示例html:
<div class="content">
<a href="#" class="noclick">
</div>
这样做不起作用,因为<a>
标记在技术上不在选择中:
$('.content').not('.noclick').click(function(){/*blah*/});
如果我点击.content
上的任何地方,除了课程为.noclick
的内容之外,如何点击此功能?
答案 0 :(得分:3)
您必须在回调中排除它们:
$('.content').click(function(e) {
if ($(e.target).hasClass('noclick')) return;
});
或者阻止事件离开这些元素:
$('.noclick').click(function(e) {
e.stopPropagation();
});
我会选择第二个。您可以删除它,当前代码(减去.not()
)将起作用。
答案 1 :(得分:3)
$('.content').click(function(event) {
// ...
}).find('.noclick').click(function(event) {
event.stopPropagation();
});
答案 2 :(得分:0)
$('.content').click(function(e){
if(!$(e.target).is('.noclick')){
// Handle click event
}
});
答案 3 :(得分:0)
$('.content').
on('click', '.noclick', function(){return false;}).
click(function(){alert("click")})
取消对“.noclick”的点击,但会触发其他地方的点击