2010-07-22 178 views
4

使用jQuery UI,我有一個標籤插件,在標籤頁1中加載一個頁面,其中包含一個表,並在每一行是一個對話框的鏈接。jQuery UI對話框關閉不清除對話框

一切正常,保存下列:

在對話框中刪除從當前對話從開行的選項。確認並刪除行後,刷新標籤並顯示新表,刪除相關行。

現在,問題是關閉對話框後,我刪除了(或者通過JavaScript函數刪除,或者通過對話框上的關閉按鈕手動),對話框保留已刪除行的數據。

例如,

列出了三行;

從第2行打開對話框;

刪除;

對話框從JavaScript函數關閉,標籤刷新,現在兩行;

第二行(以前是第3行)中的對話框打開鏈接與剛剛打開的對話框ID相同;

單擊第2行中的打開對話框鏈接;

對話框顯示與以前相同 - 對於舊的第2行,而不是當前第2行;

關閉對話框;

單擊第2行中的打開對話框鏈接;

正確顯示 - 來自當前行2的數據;

我不知道這是否作出任何意義......這裏是發生了什麼圖片:

Enter image description here

所以,這被刪除行下面的行繼承了對話ID,當點擊顯示舊的對話框。如果關閉,然後重新打開,它會在對話框中顯示正確的內容。

我使用dialog("close")目前並試圖dialog("destroy"),但完全殺死它,並行下面不開什麼...

我怎樣才能解決這個問題?


對話實例代碼:

<script> 
    <?php 
     $ee=1; 
     foreach($bugs->result() as $rr){ 
      echo "jQuery(\"#dialog_$ee\").dialog({autoOpen:false,width:850,height:550});\n"; 
      $ee++; 
    }?> 
</script> 

然後打開該對話框:

jQuery("#dialog_<?=$i?>").dialog("open"); 
+0

我們需要查看打開對話框的代碼。 – 2010-07-22 15:58:07

+0

@Nick Craver'jQuery(「#dialog_7」)。dialog(「open」);' – stormdrain 2010-07-22 16:17:16

+0

必須有更多的東西,對話中有標題和內容......需要代碼來解決問題:) – 2010-07-22 16:18:06

回答

1

原來的對話框是不會去任何地方。關閉後,現在有兩個對話框id

在刪除功能的成功處理程序調用,我結束了它重置對話框ID,然後調用對話框(「毀滅」):

onSuccess: function(transport){ 
    var tabs = jQuery('#tabs').tabs(); 
    tabs.tabs('url', 0,'/bugs/loadTab1'); 
    tabs.tabs('load', 0); 
    closeDialog(dialogID); 
    jQuery("#"+dialogID).attr("id",dialogID+"_old"); 
    jQuery("#"+dialogID+"_old").dialog("destroy"); 
}, 
+0

是的,如果存在兩個具有相同ID(它不是有效的HTML)的對話框標籤,則會發生此行爲。 – 0x4a6f4672 2011-08-12 13:45:41