Показать сообщение отдельно
  #1 (permalink)  
Старый 19.09.2011, 21:31
Интересующийся
Отправить личное сообщение для Lewik Посмотреть профиль Найти все сообщения от Lewik
 
Регистрация: 06.07.2009
Сообщений: 17

Обновление Dialog'а
У меня словесный понос, но постараюсь сдерживаться.
Дано:
На сайте показываются различные Dialog'и, сделанные из div'ов.
Идентифицируются по id div'а.
В принципе, между ними общее только этот div-оболочка. Содержимое div'а - все что угодно. Например, JS, который после обновления* должен корректно работать.

А, и в этот же div входит генерируемый на php код JS JQuery UI, который инициализирует и настраивает этот же dialog.

Писать оригинал не буду - код циклопический.
Но должно быть похоже на такое:
<div   id="'.$sSide_guid.'">
<script>
$(document).ready(function()
{
$("#'.$sSide_guid.'").dialog({blablabla})
</script>
</div>


Задача:
Обновление окна - это клиент посылает ajax на сервер и тот возвращает сгенерированный код, которым надо просто заменить старое окно. Причем после обновления, JS, делающий из div'а dialog может поменяться. (Да и в самом "теле" окна может быть еще куча всякого JS)

Обновление должно вызываться из внутренностей div'а dialog'а.
Например, по отправке формы или по специальной кно.. короче, элемент с click'ом или чем там еще - обязательно расположен внутри div'а dialog'а.


Решение:
И что я только не делал...
Как я понимаю - обновление должно делаться на стороне - надо вызывать функцию обновления с определенными параметрами, она будет отправлять ajax, получать готовый код, удалять старое окно и вставлять новое. Но после второй итерации старое не удаляется. Как мне кажется - проблема в id.
function reload_side(side_id,new_side)
				{
					var tmp;
					tmp = document.getElementById(side_id);
					tmp.empty();
					$('#insert_new_side_marker').prepend(new_side);
				};

Ну тут new_side генерачится в самом dialog'е, а потом передается функции. Ну не суть важно где новое окно генерачится.

Я сначала еще пробовал делать обновление с помощью кода в dialog'е, но... или окно само себя удаляет и болт, или окно сначала ставит замену, а потом путается в id (их то теперь два одинаковых)

Я даж аську дам - 232633173.
Ответить с цитированием