点击和选择器:不 - 不工作

时间:2015-03-26 12:13:14

标签: jquery jquery-selectors

为什么选择器:不 - 不工作?点击红色区域后,打开警报。为什么呢?

<div class='content'>

    <div style="width:200px; height:200px; background:#EEE;">

        <div id="click" style="width:100px; height:100px; background:red"></div>

    </div>

</div>

$("body:not(#click)").on("click",  function(event) {

alert(event.target.id);

});

1 个答案:

答案 0 :(得分:2)

您需要使用停止传播或在点击处理程序中检查条件。

你的选择器body:not(#click)会查找id不是click的body元素,在你的情况下,身体没有id,所以它会将处理程序添加到body元素

$("body").on("click", function (event) {
    if (!$(event.target).closest('#click').length) {
        alert(event.target.id);
    }
});

演示:Fiddle


使用停止传播

$("body").on("click", function (event) {
    alert(event.target.id);
});

$("#click").on("click", function (event) {
    event.stopPropagation()
});

演示:Fiddle