jQuery模式对话框第一次打开时不是模态

时间:2012-03-28 10:13:00

标签: jquery ajax jquery-ui

我有以下问题:

我已经打开了一个JQuery对话框,我想用另一个模态对话框覆盖它以覆盖它并显示一些其他功能/信息。

我用第二个对话框填充ajax请求获取的数据。 问题是,第一个对话框没有在第一次点击时打开模态。当我关闭它并重新打开它时,对话框是模态的。

我的代码如下所示: 我在一个已存在于正文中的对话框

function showMachineControlDialog(id)
{       
    loadMachineControlDialog(id);

    var buttonsOpts = {};
    buttonsOpts["Close"] = function() { $(this).dialog("close"); };
    $("#machine_control_box").dialog({ buttons : buttonsOpts });
    $("#machine_control_box").dialog({  width: 250, resizable: false });
    $("#machine_control_box").dialog( "option", "title", "Control-Dialog" );
    $("#machine_control_box").dialog({ zIndex: 2000 });
    $("#machine_control_box").dialog({ closeOnEscape: true });
    $("#machine_control_box").dialog({ modal: true });
    $("#machine_control_box").dialog({ autoOpen: false });
}

这里我获取推送到对话框中的数据:

function loadMachineControlDialog(id)
{   
    var paramlist = "id="+id;
    $.ajax({
         type: "GET",
         dataType: "html",
         url: "getData",
         data: paramlist,
         contentType: "application/x-www-form-urlencoded;charset=UTF-8",
         cache: false,
         success: function(data){
             $("#machine_control_box").html(data).dialog("open");
             $("#machine_control_box").dialog({ position : 'center' });
         },
             error: function(data){
             showErrorDialog(data.responseText);
         }
     });
}

经过一番搜索后,我自己找到了修复程序。我必须在将任何HTML插入对话框之前设置模态属性。如果之后设置了模态,则由于某种原因它将无法工作。

1 个答案:

答案 0 :(得分:2)

第一次打开对话框后,将对话框设置为模态,例如在调用loadMachineControlDialog(id);之后。

此外,您应该像这样链接.dialog个选项,并在

之后致电loadMachineControlDialog()
 $("#machine_control_box").dialog({ 
   buttons : buttonsOpts,
   width: 250, 
   resizable: false
   "option", "title", "Control-Dialog" 
   zIndex: 2000;
   closeOnEscape: true 
   modal: true 
   autoOpen: false });

 loadMachineControlDialog(id);
相关问题