jquery - 覆盖容器应在单击时关闭,但如果单击 anchor 或输入子项则不会关闭

标签 jquery html css overlay

可能相当简单,但找不到合适的解决方案:

    <!-- newsletter -->
    <div id="newsletter-overlay" class="blur-overlay">
      <button type="button" class="close-btn">x</button>
      <div class="inner-wrap"> 
        <!-- Newsletter Form -->
        <div id="newsletter-form">
          <form action="/newsletter" method="post" class="group">
            <input type="text" name="email" id="email" placeholder="E-Mail Address" autocomplete="off">
            <input type="submit" name="submit" id="submit" class="button2" value="Signup">
            <div class="messages"> <span class="error-message">Please enter a valid E-Mail Address.</span> <span class="success-message">Thank you for your signup.</span> </div>
          </form>
        </div>
        <!-- /Newsletter Form --> 
      </div>
    </div>
    <!-- /newsletter -->

我的 JS 看起来像这样......

    $('.blur-overlay').on('click', function(e) {
        console.log('clicked')
        e.preventDefault();
        $('.blur-overlay').fadeOut(150);
    });

叠加层是position:absolute;宽度:100%; height: 100% 并且位于所有东西之上。我希望叠加层在单击后立即关闭,但不希望在单击叠加层内的 ainput 时发生这种情况。

我想到了类似的方法,但这行不通。

    $('.blur-overlay *').not('input, a').on('click', function(e) {
        console.log('clicked')
        e.preventDefault();
        $('.blur-overlay').fadeOut(150);
    });

有什么想法吗?谢谢

最佳答案

$('.blur-overlay').on('click', function(e) {
    console.log('clicked')

// check if click was on the overlay and not on its children
    if (e.target == this) {
    $('.blur-overlay').fadeOut(150);
}
});

关于jquery - 覆盖容器应在单击时关闭,但如果单击 anchor 或输入子项则不会关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438627/

相关文章:

python - 如何从 jquery ajax 调用 python 处理程序?

javascript - 如何在 PHP 中更新数据库表的接受/拒绝

javascript - 设置文本区域中各行的样式

html - 关键帧未显示所有元素

css - Ubuntu CLI 中的红色文件名 (Vagrant)

jquery - 远程 : true option for form_for working for new action, 但不创建操作

javascript - 隐藏的 TextArea 复制到剪贴板

javascript - 根据所选产品从数据数组填充价格

jquery - 具有多个导航选项的 slider 丢失索引并且损坏或不合适?

javascript - 如何获取元素的 HTML