jQuery: есть ли причина не всегда использовать live () для щелчка и других функций? - PullRequest
3 голосов
/ 27 сентября 2011

Мне действительно нравится использовать .live () в jQuery для click () focus () blur () и других событий взаимодействия.

Я много занимаюсь прототипированием, поэтому считаю, что это дает мне большую гибкость, если я хочу динамически добавлять элементы. По этой причине меня привлекает идея использовать его по умолчанию все время. Это хорошая идея или плохая производительность?

Замедляет ли использование .live('click',function(){}) то, чего не делает .click(function(){})?

Ответы [ 4 ]

1 голос
/ 27 сентября 2011

Если вам не нужно, чтобы ваши события поднимались до вершины DOM, и вы знаете контекст, в котором будет происходить ваше событие, тогда Delegate () - гораздо лучший выбор с точки зрения производительности. , См. в этом сообщении stackoverflow о том, почему делегат () лучше, чем live () в этом отношении.

1 голос
/ 27 сентября 2011

Что касается производительности, в большинстве случаев лучше использовать live. Однако в прямом эфире есть несколько подводных камней, которые описаны в документации здесь http://api.jquery.com/live/#caveats.

1 голос
/ 27 сентября 2011

Я помню, что .live использует всплывающее окно событий.

По своему опыту я видел заметное снижение производительности при использовании .live в большом документе с часто запускаемым событием, например при наведении мыши.

jQuery Doc:

НоНачиная с jQuery 1.4, всплывающее окно события может дополнительно останавливаться на элементе DOM "context".

Таким образом, вы можете использовать это, чтобы минимизировать эффект производительности.

1 голос
/ 27 сентября 2011

Я думаю, что следующий ответ подойдет для влияния на производительность, которое он создает Как работает jQuery .live ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...