jQuery UI模式对话框没有阻塞

时间:2009-11-14 09:14:10

标签: jquery user-interface dialog modal-dialog blocking

我是javascript和jQuery的新手。我正在尝试使用jQuery UI小部件实现模式对话框。

使用“确定”和“取消”按钮可以正确显示模态对话框,但是对话框(“打开”)函数调用似乎没有阻止并等待“确定”或“取消”单击。例如,当我运行以下代码时

.....按钮点击

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

首先显示警告框,然后显示那么模式对话框! okToDelete是一个全局变量,当我输入函数并在OK按钮回调中设置为true时,我将其设置为false。

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

$("#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 个答案:

答案 0 :(得分:11)

这并不意味着“阻止”。如果要显示警报(我假设是用于测试)或在对话框关闭后调用其他函数,如果要将其放在callbackokcancel函数中。

检查出来:
http://docs.jquery.com/UI/Dialog#event-close

来自文档的事件close
关闭对话框时会触发此事件 代码示例

提供一个回调函数来处理close事件作为init选项。

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

按类型绑定到关闭事件:dialogclose。

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