$(\'body\').click(function() {
//hide layer code here
});
This will hide the layer.
But I don\'t want the layer to be hidden when I click insid
$('body').click(function(ev){
if(ev.target.className == 'yourLayerClass') {
// Your code here
}
});
I think the more elegant way is this:
$('body').click(function(event) {
// hide layer code here
});
$('#layer').click(function(event) {
event.stopPropagation();
});
You can try something like this.
$(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>
Demo
Also, you can create an overlay (the standard way)
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.
});
Demo
get the id to layer. for example: #layer
and put this code to your script file:
$('#layer').on('click', function (event) {
event.stopPropagation();
});