【问题标题】:jQuery UI modal dialog not blockingjQuery UI 模态对话框不阻塞
【发布时间】:2010-12-16 13:37:20
【问题描述】:

我是 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是一个全局变量,我进入函数时设置为false,在OK按钮回调中设置为true。

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

$("#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;
            }
        }
    });

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      相关资源
      最近更新 更多