我遇到了使用jQuery工具選項卡(AJAX)和jQuery UI對話框(手動爲對話框執行AJAX加載)的問題。問題在於對話框被加載並專門爲當前選項卡設置(通過AJAX加載選項卡請求以及選項卡的內容)。 jQuery UI在創建對話框時,將容器從原始位置移除,添加標記並將其附加到主體。帶有AJAX選項卡的jQuery UI對話框問題
問題在於對話框現在超出了選項卡的內容,並且在隨後的選項卡更改中不會被替換/刪除。如果用戶單擊另一個選項卡或後退按鈕(這些選項卡具有使用URL哈希的AJAX歷史記錄,因此該頁面實際上沒有重新加載),但由於jQuery UI對話框將其移出標籤內容。它現在只出現在身體的底部。如果用戶在物理上點擊了關閉按鈕,我寫了一個'hack around',但是如果按下後退按鈕或者另一個標籤通過AJAX加載並且jQuery UI實際上將其移回到身體(不知道如何/爲什麼這樣做!)。有什麼建議麼?如果我對此不清楚,請讓我知道。謝謝! (這是我現在得到,成功地消除它,當用戶物理上關閉對話框)
$('.openMyDialog').click(function() {
// Create div for dialog
$('body').append('<div id="modalContainer"></div>');
// Load dialog with AJAX
$('#modalContainer').load('loadMyAjaxContent.html').dialog({
modal: true,
width: 850,
open: function(type,data) {
// Remove from bottom of body and put it back into the tab's content
$(this).parent().appendTo('.panes div:first');
},
close: function() {
$(this).dialog('destroy');
$('#modalContainer').remove();
}
});
});