У меня словесный понос, но постараюсь сдерживаться.
Дано:
На сайте показываются различные 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.