jQuery使用:不选择on

时间:2014-01-02 15:46:47

标签: jquery click

有点麻烦。请查看以下代码。

$(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”的任何建议?

2 个答案:

答案 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
});

Demonstration

答案 1 :(得分:1)

您可以执行类似

的操作
$(document).on("click", function (e) {
    if (!$(e.target).is('.parent-container a')) {
        console.log(e.target)
    }
});

演示:Fiddle