javascript - 单击子 div 外部关闭灯箱

标签 javascript jquery html

我在不使用 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/

相关文章:

javascript - 防止多次点击触发

javascript - 在 HTA 应用程序中打开网站

javascript - 从另一个 Ajax 调用 Ajax

javascript - jQuery - 允许用户最多添加 4 个 div/用户输入

javascript - 在控制台中记录复选框的值

html - 当我通过指向另一个 HTML 文件的链接传递一个变量时,CSS 配置消失了。发生这种情况的任何原因?

javascript - 根据下拉菜单中的选项通过 SuiteScript 隐藏自定义列字段

javascript - Chrome 57 使 .data() 无法正常运行

php - 响应正常,但 $.ajax 上的成功方法未触发?

html - 如何更改 D3 中的 CSS "animation-delay"属性?