以下の解決策
この概念に関するほとんどの質問を読んだことがありますが、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");
}
});