Мне нужно настроить HTML через jQuery, когда страница отрисовывается. Например, у меня может быть это:
<ol>
<li>
<div class="theDiv"></div>
<a class="theLink"...>...</a>
<li>
<ol>
Иногда мне нужно скрыть div. Иногда мне нужно применить событие click к тегу привязки. Так что я могу иметь это:
$('li').hide();
$('a').click(function(){...});
Это прекрасно работает.
Однако сейчас мы загружаем дополнительные LI в этот список. К сожалению, мы не делаем это с jQuery. Я мог бы обернуть вышеупомянутое в функцию, которая могла бы быть вызвана после загрузки ajax, чтобы перерисовать все. Но есть ли лучший способ?
Я думал, что live()
будет решением, но я вижу, что delegate()
теперь предпочтительнее с помощью документации.
В любом случае оба варианта позволяют связывать события (щелчок, зависание и т. Д.), А не просто повторную визуализацию после добавления нового HTML в DOM.
Есть ли способ сделать это через delegate()
? Есть ли более правильный способ справиться с этим?
UPDATE:
Возможно, гораздо более простой способ задать это: чтобы JS воздействовал на DOM после обновления AJAX, нужно ли запускать его с помощью самого вызова AJAX (обычно с помощью функции обратного вызова), или есть способ jQuery для «следить» за обновлениями DOM и запускать соответственно?