0
$('body').click(function() {
//hide layer code here
});

这将隐藏图层。

但是当我在图层内部/上单击时,我不希望图层被隐藏。

请帮忙。

4

4 回答 4

1

我认为更优雅的方式是这样的:

$('body').click(function(event) {
// hide layer code here
});
$('#layer').click(function(event) {
event.stopPropagation();
});
于 2012-10-10T10:41:31.713 回答
0

你可以尝试这样的事情。

$(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.
});​

演示

于 2012-10-10T10:32:50.583 回答
0
$('body').click(function(ev){
    if(ev.target.className == 'yourLayerClass') {
        // Your code here
    }
});
于 2012-10-10T10:24:26.267 回答
0

获取要分层的 id。例如:#层

并将此代码放入您的脚本文件:

$('#layer').on('click', function (event) {
event.stopPropagation();
});
于 2012-10-10T10:47:16.940 回答