jQuery ツール タブ (AJAX) と jQuery UI ダイアログ (ダイアログの AJAX 読み込みを手動で行う) を使用すると問題が発生します。問題は、ダイアログがロードされ、現在のタブ専用にセットアップされることです (タブのコンテンツとともに、AJAX を介してタブ要求にロードされます)。jQuery UI は、ダイアログを作成するときに、コンテナーを元の位置から削除し、そのマークアップを追加して、本文に追加します。
問題は、ダイアログがタブのコンテンツの外にあり、その後のタブの変更で置き換え/削除されないことです。ユーザーが別のタブまたは [戻る] ボタンをクリックすると (これらのタブには URL ハッシュを使用した AJAX 履歴があるため、ページは実際にはリロードされません)、ダイアログは壊れますが、jQuery UI ダイアログがそれを外部に移動したため、削除されません。タブの内容。それは今、体の底に現れています。ユーザーが閉じるボタンを物理的にクリックした場合の「ハックアラウンド」を書きましたが、戻るボタンが押された場合、または別のタブがAJAXを介してロードされた場合、これは起動されず、jQuery UIは実際にはそれを一番下に戻しますbody (どのように/なぜそれを行うのかわかりません!)。助言がありますか?そして、私がそれについて明確でない場合はお知らせください。ありがとう!(今持っているものは、
$('.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();
}
});
});