Есть такая проблема — очень много разного jQuery-кода. Кое-что обновляется по AJAX и над обновить все дерево DOM, чтобы возращенные элементы тоже включались в дерево.
Можно конечно live() или jQuery Lister Plug-in, но код настолько большой и запутанный, что этот вариант приведет к переписыванию очень много, поэтому не вариант.
Подскажите идеальное решение по обновлению DOM-дерева в любой момент времени с учетом всех возвращенных данных.
Как писали выше — само дерево полностью динамично, а вот обработчики навешиваются на элементы и их события единожды при вызове вашего кода. Поэтому, если хотите работать без live/bind — навешивайте свои функции уже после финального изменения DOM.
я тут расскажу как работают евенты, а вы сами разберитесь что Вам нужно:
$(element).click(function) — ищет на странице нужный элемент(ы) и непосредственно ему дает евент.
$(parentElement).delegate( element, function ) — ищет на странице parentElement, вешает на него обработчик который срабатывает на любом дочернем элементе, и каждый раз проверяется, а наш ли это элемент, и если да, то выполняется.
Вывод:
1. .click не будет работать с аяксом, так как эвент непосредственно элементу дает обработчик, а элементов нет
2. .delegate срабатывает всегда, так как динамически проверяет каждый раз наличие элемента
3. у Вас элементы появляются динамически
4.!!!
5. PROFIT!
Я думаю Вы меня поняли.Как раз здест очень хорошо говорит за меня поговорка: и на х@й сесть и рыбку сьесть… Нет, не получится. Переписывайте.