jQuery UI模态对话框未阻塞。

11

我是JavaScript和jQuery的新手。我试图使用jQuery UI小部件实现模态对话框。

模态对话框正常显示OK和Cancel按钮,但是dialog('open')函数调用似乎不会阻塞并等待OK或Cancel点击。例如,当我运行以下代码:

.....在按钮单击时

  okToDelete = false; //a global variable
  $('deleteDialog').dialog('open'); //this does not block but returns immediately
  alert(okToDelete == true ? "ok" : "false");

警告框先显示,然后模态对话框出现!okToDelete是我在进入函数时设置为假的全局变量,并在确定按钮回调中设置为真。

这是我的对话框初始化函数。

$("#deleteDialog").dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        overlay: {
            backgroundColor: '#000',
            opacity: 0.5
        },
        buttons: {
            Cancel: function() {
                $(this).dialog('close');

            },
            Ok: function() {
                $(this).dialog('close');
                okToDelete = true;
            }
        }
    });
1个回答

11

它并不是用来“阻止”的。如果您想要显示警报(我假设这是为了测试)或在对话框关闭后调用其他函数,如果您将其放置在callbackokcancel函数中。

请看这个:
http://docs.jquery.com/UI/Dialog#event-close

从文档中获取的close事件:
当对话框关闭时触发此事件。
代码示例:

提供一个回调函数作为初始选项来处理关闭事件。

$('.selector').dialog({
   close: function(event, ui) { ... }
});

通过类型 dialogclose 绑定关闭事件。

$('.selector').bind('dialogclose', function(event, ui) {
  ...
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接