下面的解决方案
我已经阅读了关于这个概念的大多数问题,但我似乎无法让它与 if 语句一起使用。有什么帮助吗?
$("button").click(function () {
$("div").fadeToggle("fast");
});
if ($("div").is(":visible")) {
$(document).click(function () {
$("div").fadeToggle("fast");
});
$("div").click(function (e) {
e.stopPropagation();
});
}
所以,按钮应该切换 div。当 div 被切换(即:visible
)时,div 只能通过单击页面上的任意位置来切换(不可见),而不是在单击 div 本身时。
解决方案
我将Diabolic 的答案和Kevin Bowersox 的答案合并到这个答案中。
$("button").click(function (e) {
$("div").fadeToggle("fast");
e.stopImmediatePropagation();
});
$(document).click(function (e) {
if($("div").is(":visible") && !$("div").is(e.target)) {
$("div").fadeOut("fast");
}
});