1

这可能是一个简单的解决方案,但我无法理解它。我想要做的是制作一个带有可点击子层的覆盖层,而不为子层分配任何交互。像这样——

<div class="overlay">
    <div class="content">Lorem ipsum dolor.</div>
</div>

jQuery 示例函数:

$('.overlay').click(function() {
    $(this).hide();
});

这里发生的是,即使我单击子层,该函数也会运行。我应该如何设置,以便只有孩子周围的区域受到影响?

4

3 回答 3

6

您可以通过以下方式检查点击目标e.target

$('.overlay').click(function(e) {
    if (!$(e.target).is('.content')) {
        $(this).hide();
    }
});
于 2012-09-29T14:23:20.347 回答
3

尝试使用e.stopPropagation(); -

$('.content').click(function(e) {
    e.stopPropagation();
    alert('child');
});

JSFiddle ​</p>

于 2012-09-29T14:23:06.520 回答
1

创建示例,单击内容防止隐藏操作 示例

于 2012-09-29T14:27:11.300 回答