我遇到了使用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();
}
});
});