javascript - 单击覆盖层时关闭 jQuery UI 对话框

标签 javascript jquery jquery-ui modal-dialog

我想在人们点击叠加层时关闭我的模式,通常你会使用

jQuery('.ui-widget-overlay').bind('click', function() {
            jQuery('#dialog').dialog('close');
        })

但是我在创建模态后加载它,所以上面的代码似乎以某种方式干扰了我的模态。 这是我到目前为止的代码。

var dialog = $(".dialog").dialog({
        autoOpen: false,
        closeText: "",
        width: 'auto',
        modal: true,
        position: { my: "center top", at: "center top+30", of: "body" },
        show: {
            effect: 'fade',
            duration: 250,

        },
        hide: {
            effect: 'fade',
            duration: 250
        },
        
    });

    $(".currentDay").click(function () {
        var id = event.target.id;
        var url = '/Home/CalenderPartial/' + id;

        dialog.load(url, function () {
            dialog.dialog("open");

        });

    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

最佳答案

您可以在open方法中绑定(bind)事件

var dialog = $(".dialog").dialog({
  autoOpen: false,
  closeText: "",
  width: 'auto',
  modal: true,
  open: function(event, ui) {   //added here
    jQuery('.ui-widget-overlay').on('click', function() {
      jQuery('#dialog').dialog('close');
    });
  },
  position: {
    my: "center top",
    at: "center top+30",
    of: "body"
  },
  show: {
    effect: 'fade',
    duration: 250,

  },
  hide: {
    effect: 'fade',
    duration: 250
  },

});

关于javascript - 单击覆盖层时关闭 jQuery UI 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39746940/

相关文章:

javascript - OAuth 同意屏幕 localhost

javascript - 为什么jQuery或诸如getElementById之类的DOM方法找不到元素?

jquery - $.notify 不是在 typescript 中使用 Bootstrap notify 的函数

jquery - HTML5 视频 : Recognize a new source

jquery - 导航栏设计

javascript - 将 javascript 事件获取到被覆盖的对象

javascript - JQuery Packery 中心项目

javascript - $(document).open() 在这些情况下不起作用

jquery - 向 jquery ui 选项卡添加关闭按钮?

javascript - 使用 JQuery SlideToggle 而不移动下面的内容