我正在创建一个灯箱而不使用 jquery 插件,现在我试图通过单击 close 按钮或单击白色区域 ( .white_content ) 之外的任何其他位置来关闭它
Jsfiddle Example

<button onclick="document.getElementById('lightbox').style.display='inline';">
    Show lightbox
</button>

<!-- LIGHTBOX CODE BEGIN -->
<div id="lightbox" class="lightbox" style="display:none">
    <div class="white_content">
        <a href="javascript:void(0)" onclick="document.getElementById('lightbox').style.display='none';" class="textright">Close</a>
            <p>Click anywhere to close the lightbox.</p>
            <p>Use Javascript to insert anything here.</p>
    </div>
</div>
<!-- LIGHTBOX CODE END -->

虽然这不仅仅是我想要的。我希望它仅在我点击灯箱的黑暗区域而不是白色容器 (.white_content) 时关闭,我听说 event.propagation 使用起来可能不好,所以这是我关闭灯箱
$(document).on('click', function(event) {
  if (!$(event.target).closest('button').length) {
    $(".lightbox").hide();
  }
});

最佳答案

你可以像下面一样改变你的条件

$(document).on('click', function(event) {
    if ($(event.target).has('.white_content').length) {
        $(".lightbox").hide();
    }
});

关于javascript - 在子 div 外部单击时关闭灯箱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29440518/

10-12 00:20
查看更多