Вопрос

Я недавно обнаруженный Этот плагин LiveQuery для jQuery может быть довольно расточительным, так как он не использует делегирование событий, но связывает все связанные события и перепроверяет весь DOM в каждом изменении

Если у кого -то есть больше информации или предложений о лучших практиках с использованием LiveQuery и .live (), я был бы очень благодарен

Это было полезно?

Решение

Редко вам действительно понадобится плагин, как livequery. Анкет Наверное, единственный раз, когда вам действительно нужно это, это то, что вам нужно отреагировать на изменения в DOM, сделанный каким -то другим кодом jQuery, который вы не может изменить.

Пока .live() использует делегирование событий, он делает это на document уровень, что означает, что он должен обрабатывать все События на странице, чтобы увидеть, соответствуют ли они селекторам, предоставленным на тип события.

Лучшая альтернатива (IMO) для обоих - это delegate()(Документы) метод, который использует делегирование событий, как .live(), но позволяет вам ограничить определенную часть страницы.

$('#someContainer').delegate('a.someButton', 'click', function() {
    // do something when an "a.someButton" inside "#someContainer" is clicked
});

Обратите внимание, что методы делегирования событий реагируют на события браузера, а не на изменения в DOM. Если вам нужно запустить какой -то код на основе изменения в доме, который вы сделали, вам нужно запустить этот код Когда вы вносите это изменение к дому.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top