javascript - 通过在模态外部单击来关闭模态

标签 javascript jquery html css modal-dialog

我有一个使用 CSS 构建的模态窗口。可以通过在其外部单击来关闭模态。

当事件监听器单独添加到页面时,我的解决方案打开模态有效,关闭模态也有效。但是,它们不一起工作。当两个监听器都添加到页面时,模式将不会打开。

如何让它们协同工作?

HTML

<a href="#openModal" id="modal-window" class="event test">
  <div class="shorten-long-text test">
  </div>
</a>

<div id="openModal" class="modalDialog Dialog1">
  <div class="myModal">
    <div class="modal-header">
    </div>
    <div class="modal-body row">
      <div class="col-xs-6" >
      </div>
    </div>
    <div class="modal-footer uppercase color-main">
      <a href="#close" title="Close"></a>
    </div>
  </div>
</div>

JS

$(window).click(function(ev) {
    if($(ev.target).attr('class') != ".Dialog1" ) {
        $(".Dialog1").removeClass('isOpen');
        $(".Dialog1").addClass('isClosed');
    }
});

$(".test").click(function() {
    $(".Dialog1").removeClass('isClosed');
    $(".Dialog1").addClass('isOpen');
});

最佳答案

使用toggleClass() HTML:

<div id="openModal" class="modalDialog isClosed Dialog1">

js:

$(window).click(function(ev) {
if(!$(ev.target).is('.Dialog1,.test')  $(".Dialog1").toggleClass('isClosed isOpen');
}                                       
});

$(".test").click(function() {
$(".Dialog1").toggleClass('isClosed isOpen');
});

关于javascript - 通过在模态外部单击来关闭模态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39366846/

相关文章:

javascript - 如何在 jquery 中启用和禁用下拉值

javascript - 所选元素的鼠标移开效果

javascript - 使用 .each 的 Jquery 搜索过滤器

javascript - jQuery 中的双击功能不起作用

javascript - 渲染存在于 jquery 自动完成数据中的 html 元素

html - 没有服务器语言的所有页面上的相同菜单?

php - 如何显示正确的 UTF-8 编码?

javascript - 当json值发生变化时,如何重新加载jquery jqGrid中的数据?

javascript - 为什么这个正则表达式也匹配非捕获组中的单词?

javascript - 如何在 Protractor 测试中检查应用程序 URL 的状态代码?