LINUX.ORG.RU

Jquery UI, dialog и повторное создание дивов.

 ,


0

1

Натолкнулся на странный эффект. Есть у нас где-то в глубине DOM-дерева div, который мы преобразуем к диалогу. При инициализации этот див в частности улетает в корень DOM. А теперь внимание, финт ушами. Мы удаляем тот кусок дерева, в котором был начальный див, и через некоторое время создаём его снова. И заново натравливаем на него диалог. И начинаются странности. Например, была в диалоге радиокнопка, оформленная как ui-button. Теперь она перестаёт реагировать на нажатия.
Как я этого «добился» - у меня весь контент размещён в <div id='all_content'>, сидящий непосредственно в body, и кроме этого all_content вообще говоря нет ничего, разве что скрипты. Есть событие logout, которое содержимое этого самого all_content заменяет на форму логина. Но при при этом остаются диалоги, так как их вынесло за пределы all_content! А потом мы логинимся повторно, у нас опять рисуется всё содержимое, в том числе и наши диалоги, и они опять оформляются...

Пока вышел из положения так, что при логауте делаю $('[role="dialog"]').remove(), но... Может я делаю что-то не то и не так? Или я наткнулся на багу?

★★★★★

Последнее исправление: Xellos (всего исправлений: 2)

Может я делаю что-то не то и не так?

Велосипедишь body например.

А ломается всё наверно из-за того что повторно инициализируется диалог с существующим ид.

Kalashnikov ★★★
()

Как у Вас всё сложно. А, когда надо, скрывать и показывать div вместо его создания и удаления не пробовали?

lucentcode ★★★★★
()
Ответ на: комментарий от Kalashnikov

Что самое интересное повторный div изнутри исчезает, остаётся только один наружний. Но со странным поведением.

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

Чем проще идея, тем лучше. Постоянно перекраивать дерево DOM - как мне кажется, немного оверхед.

lucentcode ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.