我有以下示例结构:

<div class="modHolder">
  <div id="wData">...</div>
</div>


我希望单击.modHolder会发生什么,但是如果单击#wData则什么也不会发生。

这是我正在尝试的方法,但是#wData仍对点击做出反应:

$(document).on('click', '.modHolder:not("#wData"), .modClose', function(e) {
...
}


有什么想法吗?

最佳答案

这样做的方法是,使用它单击.modHolder

$(document).on('click', '.modHolder, .modClose', function(e) {
    ...
});


然后添加:

$(document).on('click', '#wData', function(e) {
    e.stopPropagation();
});


这将停止clickEvent使DOM树冒泡。

在此处检查:JSFiddle

关于javascript - :not()仍然触发点击事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26638468/

10-12 12:47