我正在尝试让.click()事件在div.content上运行,除非单击具有特定类的内容,例如.noclick。范例html:

<div class="content">
    <a href="#" class="noclick">
</div>


这样做不起作用,因为<a>标记在技术上不在选择范围内:

$('.content').not('.noclick').click(function(){/*blah*/});


如果我在.content上的任何地方单击(类为.noclick的东西除外),如何使click功能起作用?

最佳答案

您必须将它们从回调中排除:

$('.content').click(function(e) {
    if ($(e.target).hasClass('noclick')) return;
});


或阻止事件离开这些元素:

$('.noclick').click(function(e) {
    e.stopPropagation();
});


我会选择第二个。您只需删除它,您当前的代码(减去.not())就可以使用。

08-08 03:29