2012-03-10 54 views

回答

5

它看起来像对话框不会反映的变化,而它是开放的,但更改确实生效。要显示更改,可以关闭,然后立即重新打开对话框。这可能不是最好的解决方案。

   $(this).dialog("option","modal",true) 
        .dialog("close") 
        .dialog("open"); 

http://jsfiddle.net/9vVGz/

1

如果您想更改对话框中的选项,您需要在打开它之前执行此操作。其他明智的,你需要一个像自己的代码覆盖对话框中的成分相互作用后它是开放的

例子:

/* initialize a dialog*/ 
$('#dialog').dialog({autoOpen:false, modal:true}); 


/* open a dialog from a click handler and change options*/ 
$('#myButton').click(function(){ 
    /* change original modal option*/       
    $('#dialog').dialog('option', 'modal', false); 
    /* change title based on text of "myButton"*/ 
    $('#dialog').dialog('option', 'title', $(this).text()) 

    /* options have been changed, open dialog now */ 
    $('#dialog').dialog('open');       
}); 
0

还没使用jQuery 1.11合作。你可以简单地手动添加的叠加,虽然当你想从一个非模态切换到模态对话框:

$("#dialog").dialog("widget").before("<div class='ui-widget-overlay ui-front'></div>"); 

因此取下覆盖,如果你想从一个模式切换到无模式对话框。