そのようなハンドラーでターゲットdocument
にできるとは思いません。.click
文字通りどこでもクリックして DIV を閉じることができるようにするのではなく、そのように見せるだけです。閉じたい DIV の後ろに明確な DIV を配置し、画面全体をカバーできるようにします。次に、クリックハンドラーをそれにアタッチできます。
HTML:
<button>Click me to show the DIV</button>
<div class="container">
<div class="thediv">
<p>I'm the DIV</p>
</div>
</div>
JavaScript:
$(document).ready(function () {
var $button = $("button");
var $container = $("div.container");
$button.click(function () {
$container.show();
});
$container.click(function () {
$container.hide();
});
});
CSS:
div.container {
display: none;
position: fixed;
top: -5%;
left: -5%;
width: 110%;
height: 110%;
}
div.thediv {
position: absolute;
top: 30%;
left: 10%;
background-color: gray;
color: white;
padding-top: 1em;
border-radius: 5px;
width: 50%;
}
p {
background-color: black;
text-align: center;
padding: 2em;
}
デモンストレーションの目的で、この Fiddleで背景の DIV を表示できるようにしました。