2012-08-17 40 views
2

好吧,這就是我想要實現的和我面臨的問題。要遵循的步驟是:使jQuery對話框的大小和位置非持久

  1. 打開一個對話框
  2. 拖動它周圍和/或重新大小的對話框
  3. 再次關閉對話框
  4. 打開對話框。

對話框從上次關閉的位置開始打開,大小是上次重新設置的大小。我不想讓對話以這種方式行事。我希望它在每次打開時都以自動寬度爲中心定位。我在對話框的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'); 
    }); 
}); 

我試過搜索解決方案,但找不到任何解決方案。我知道這可能會違反直覺,但這是必需的。

回答

2

您是否嘗試過使用在文檔在這裏列出的關閉事件:

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

你可以這樣做:

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

    } 
}); 

根據文檔destroy刪除對話框功能完全。這會將元素返回到其初始狀態。

您可能需要初始化click事件上的對話框,以便每次單擊鏈接時都會重新初始化該對話框。

或者,您可以在點擊事件上使用return false;以防止不需要的行爲。

+0

我試過了,它破壞了對話框。再次打開對話框什麼都不做。也許我必須重新啓動對話框,就像你說的。但我有一種感覺,有一個更簡單的方法來做到這一點。 – 2012-08-17 03:11:50

+0

是否有可能把你的代碼放入一個jsFiddle,這樣我可以看看我能否幫助你更好一點? – ObstacleCoder 2012-08-17 03:14:59

+0

我剛剛在http://blog.nemikor.com/category/jquery-ui/jquery-ui-dialog/上找到了這個博客,它解釋瞭如何解決您的問題。 – ObstacleCoder 2012-08-17 03:18:50