这是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
你可以帮忙吗?
答案 0 :(得分:2)
.has()
返回一个jQuery对象;当在if
条件内使用时,即使包含零元素,它也总是计算为true。并且不要混淆自己,它会返回真或假,与.hasClass()
/ .is()
尝试,
$(document).bind('click', function (e) {
var $clicked = $(e.target);
if (!$clicked.parents().find("#campaignDiv").length) {
$("#campaignDiv").hide();
} else { console.log("asdf");}
});
答案 1 :(得分:2)