为什么选择器:不 - 不工作?点击红色区域后,打开警报。为什么呢?
<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);
});
答案 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