Имам проблем с използването на jQuery Tools Tabs (AJAX) заедно с jQuery UI Dialog (ръчно извършване на зареждането на AJAX за диалоговия прозорец). Проблемът е, че диалоговият прозорец се зарежда и настройва специално за текущия раздел (зарежда се в заявката за раздел чрез AJAX, заедно със съдържанието на раздела). Потребителският интерфейс на jQuery, когато създава диалоговия прозорец, премахва контейнера от първоначалната му позиция, добавя неговото маркиране и го добавя към тялото.
Проблемът е, че диалоговият прозорец вече е извън съдържанието на раздела и няма да бъде заменен/премахнат при последващи промени в раздела. Ако потребителят щракне върху друг раздел или върху бутона за връщане назад (тези раздели имат AJAX хронология, използваща URL хеша, така че страницата всъщност не се презарежда), диалоговият прозорец не работи, но не се премахва, тъй като jQuery UI Dialog го премести извън съдържанието на раздела. Сега се показва само в долната част на тялото. Написах „хакване“ за това, ако потребителят физически щракне върху бутона за затваряне, но това не се задейства, ако се натисне бутонът за връщане назад или се зареди друг раздел чрез AJAX и потребителският интерфейс на jQuery всъщност ГО ПРЕМЕСТВА НАЗАД в долната част на тяло (Не знам как/защо го прави!). Някакви предположения? И моля, уведомете ме, ако нещо от това не ми е ясно. Благодаря! (Ето какво имам сега, което го премахва успешно, когато потребителите физически затворят диалоговия прозорец)
$('.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();
}
});
});