使jquery对话框的大小和位置非持久性

时间:2012-08-17 02:31:05

标签: jquery jquery-ui jquery-ui-dialog

好的,这就是我想要实现的目标和我面临的问题。要遵循的步骤是:

  1. 打开对话框
  2. 将其拖动和/或重新调整对话框的大小
  3. 关闭对话框
  4. 再次打开对话框。
  5. 对话框从上次关闭的位置打开,大小是上次重新调整大小的位置。我不希望对话框以这种方式运行。我希望每次打开时都能从中心定位自动宽度。我在对话框的init中提供了位置:'center'和width:'auto',但它似乎没有帮助。

    jQuery版本:1.7.1 jQuery UI版本:1.8.17 浏览器:IE9 / IE8

    以下是HTML:

    <div class='mydialog'></div>
    <a href='#' id='one'>test1</a>
    

    以下是对话框本身的代码:

    $(function(){
       var theDialog = $(".mydialog").dialog({
            autoOpen: false,            
            modal: true,
            width: 'auto',
            position: 'center',            
        });
    
        $('#one').click(function(){
            theDialog.html('some random text').dialog( "option", "title", "Dynamic Title").dialog('open');
        }); 
    });
    

    我试图寻找解决方案,但我找不到任何解决方案。我知道这可能是违反直觉的,但这是必需的。

1 个答案:

答案 0 :(得分:2)

您是否尝试过使用此处文档中列出的close事件:

http://jqueryui.com/demos/dialog/

您可以执行以下操作:

$( ".mydialog" ).dialog({
   close: function(event, ui) {
       $(this).dialog( "destroy" );

   }
}); 

根据文档destroy完全删除对话框功能。这将使元素返回到pre-init状态。

您可能需要初始化click事件上的对话框,以便每次单击链接时重新初始化。

或者,您可以在点击事件中使用return false;来防止不必要的行为。