$('body').click(function() {
//hide layer code here
});
これにより、レイヤーが非表示になります。
ただし、レイヤーの内側/クリック時にレイヤーが非表示になりたくありません。
助けてください。
よりエレガントな方法はこれだと思います:
$('body').click(function(event) {
// hide layer code here
});
$('#layer').click(function(event) {
event.stopPropagation();
});
$('body').click(function(ev){
if(ev.target.className == 'yourLayerClass') {
// Your code here
}
});
あなたはこのようなことを試すことができます。
$(document).ready(function () {
$('body').click(function(e) {
if(e.target.id !== 'layer') {
alert('Put code to hide layer here');
}
});
});
</script>
<body>
<p id='layer'>This is layer</p>
<p id='other'>This is other part </p>
</body>
また、オーバーレイを作成することもできます(標準的な方法)
HTML
<body>
<div id='overlay'></div>
<p id='layer'>This is layer</p>
</body>
JS
$('#overlay').click(function(e) {
alert('code to hide your layer');
// Notice that this function won run when you click on layer but will run whenever you on any other part of body.
});
レイヤーへのIDを取得します。例:#layer
そして、このコードをスクリプトファイルに入れます。
$('#layer').on('click', function (event) {
event.stopPropagation();
});