这是jfiddle
http://jsfiddle.net/Vp942/1/
我有一个div campaignDiv
当用户单击它的侧面时,我想隐藏它。
这就是我尝试过的
$(document).bind('click', function (e) {
var $clicked = $(e.target);
if (!$clicked.parents().has("#campaignDiv")) { $("#campaignDiv").hide(); } else { console.log("asdf");}
});
但是由于某些原因,即使我在
else
中单击,也总是执行campaignDiv
你能帮忙吗?
最佳答案
.has()
返回一个jQuery对象;在if
条件内使用时,即使包含零个元素,它始终会评估为true。并且不要混淆自己,它将返回与.hasClass()
/ .is()
相同的true或false
尝试,
$(document).bind('click', function (e) {
var $clicked = $(e.target);
if (!$clicked.parents().find("#campaignDiv").length) {
$("#campaignDiv").hide();
} else { console.log("asdf");}
});
DEMO