有点麻烦。请查看以下代码。
$(document).on("click", "*:not(.parent-container a)", function(e) {
// Do stuff if we have not clicked a link inside .parent-container
});
.parent-container附加到DOM。然后我们想把“click”事件绑定到.parent-container里面的链接,但我发现当我点击.parent-container里面的链接时“如果我们没有点击里面的链接就做.parent-container“仍在执行。
关于如何正确避免绑定到“.parent-container a”的任何建议?
答案 0 :(得分:3)
通常正确的做法是有两个绑定(事实上,因为你的真实应用程序已经有更多的绑定,可能是一个元素,你不添加绑定,你只需添加return false
) :
$(document).on("click", function(e) {
// Do stuff if we have not clicked a link inside .parent-container
}).on("click", ".parent-container a", function(e) {
// you probably already have something to do
return false; // avoid propagation, the other event handler won't be called
});
答案 1 :(得分:1)
您可以执行类似
的操作$(document).on("click", function (e) {
if (!$(e.target).is('.parent-container a')) {
console.log(e.target)
}
});
演示:Fiddle