Ответ 1
Редко, что вам действительно нужен плагин, например livequery
. Вероятно, единственный раз, когда вы действительно нуждаетесь в этом, вам нужно отреагировать на изменения в DOM, сделанные другим кодом jQuery, который вы не можете изменить.
В то время как .live()
использует делегирование событий, он делает это на уровне document
, что означает, что ему необходимо обработать все события на странице, чтобы увидеть, соответствуют ли они селекторам, предоставленным для каждого типа событий.
Лучшей альтернативой (IMO) для обоих из них является delegate()
(docs), который использует делегирование событий точно так же, как .live()
, но позволяет ограничить его определенной частью страницы.
$('#someContainer').delegate('a.someButton', 'click', function() {
// do something when an "a.someButton" inside "#someContainer" is clicked
});
Обратите внимание, что методы делегирования событий реагируют на события браузера, а не на изменения в DOM. Если вам нужно запустить какой-то код на основе изменения в DOM, который вы создали, вам нужно запустить этот код, когда вы вносите это изменение в DOM.