javascript - 在外部单击时隐藏一个 div

标签 javascript jquery html css

我有以下用于弹出窗口小部件的 HTML:

<div id="popup">
   <div class="popup-wrapper">
      <div class="content">
         <h1>TEST</h1>
      </div>
   </div>
</div>

使用CSS:显示为NONE:

#popup {
    display: none;
    overflow: auto;
}

    #popup .popup-wrapper { 
        background-color: #0D1014; 
        background-color: rgba(13,16,20,0.95); 
        height: 100%; width: 100%;
        position: fixed; top: 0; left: 0; right: 0; bottom 0; 
    }

    #popup .content {
        background-color: #E8F0F3;
        border: 1px solid #FFFFFF;

        width: 300px;
        position: fixed;
        top: 50%; left: 50%;
        margin-left: -150px;
        margin-top: -140px;
        padding: 20px;
        overflow: hidden;

        border-radius: 5px 5px 5px 5px;
        -moz-border-radius: 5px 5px 5px 5px;
        -webkit-border-radius: 5px 5px 5px 5px;

        -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.5);
        -moz-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.5);
        box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.5);
    }

    .no-scroll {
        overflow: hidden;
        height: 100%; width: 100%;
    }

使用 JavaScript 单击链接时将显示弹出窗口:

$(".popup").on('click', function(e) {
        $("#popup").fadeIn(200);
        $("body").addClass("no-scroll");
    });

问题是,如何在仅点击 .popup-wrapper 而不是 .content 时隐藏 #popup

最佳答案

20 分钟前我自己遇到了这个问题
代码:

$("#popup").on('click', function(e) {
    if ($(e.target).closest(".content" /*or any other selector here*/).length > 0) {return false;}
    $("#popup").fadeOut(200);
    $("body").addClass("no-scroll");
});

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

相关文章:

html - Materializecss 中的卡片无法正常工作

javascript - 这个 capybara 试验会剥落吗?

javascript - 有什么方法可以导出生成器函数?

javascript - apollo graphql 传递参数来解析函数

javascript - Chrome 中的 json-server "Access to localhost was denied"

jquery - 覆盖或删除就绪处理程序

javascript - 在 getUserMedia 捕获后,使用 WebRTC 将 MediaStream 发送到主机服务器

jquery - $ 未在 Laravel 5.6 项目中使用 make :auth scaffolding and default app. js 定义

php - 如何使用 PHP 或 HTML 但不使用 JS 创建简单的树形菜单?

javascript - 如何将数据从 Ajax 弹出窗口传递到父页面?