TL; DR: live
осуждается, bind
и delegate
являются superseeded, on
является предпочтительным способом связать произвольные события и click
является просто отлично, но вроде бы ограничено.
$(selector).live("click", ...)
является устаревшим, так как 1,7, удален из JQuery, так как 1.9, негибкий (он всегда связывается с document
), крайне неэффективно (он сначала находит элементы, а затем отбрасывает выбор и использует селектор вместо этого), требует селектора, чтобы быть хранится в объекте jquery и, как правило, плохо.
$(document).on("click", selector, ...)
является буквальной заменой для live
, но он не имеет ни одной из его недостатков. Это функция привязки события do-all jQuery. Он может связывать что угодно где угодно или делегировать что угодно: $parent.on(events, [targetSelector,] handler)
. Вы можете даже связать несколько событий сразу: .on("keypress paste change", ...)
bind
и delegate
являются старшие двоюродные on
. Первый не может делегировать, последний должен. Они также различаются по порядку аргументов - on
здесь, чтобы решить это. Они были заменены на on
, но они не были устаревшими (с jQuery 1.10). Если вам нужно использовать старую версию jQuery (pre-1.7), вот они. В противном случае придерживайтесь on
. Их текущая реализация просто перенаправляется на on
.
click
, mouseOver
, change
и many other служат в качестве двойной пошлины псевдонимы для on
и trigger
. Буквально - они не делают ничего, кроме как отворачиваться к одному из них. Большинство из них существуют с самого начала, и они удобны. Однако они не могут делегировать, и для них нет соответствующих методов развязывания. Если вы используете off
, лучше дополнить его on
. Одним из приятных свойств является то, что они несут с собой обещание кросс-браузерной совместимости. Или, по крайней мере, место, где можно документировать отсутствие поддержки кросс-браузера (а именно: load
для изображений). Мое личное предпочтение - использовать on
даже в тех случаях, когда достаточно было бы click
.
TL; DR: 'live' устарел, ужасен и удален из 1.9,' bind' и 'delegate' устарели,' on' является предпочтительным способом связывания произвольных событий, и 'click' просто отлично, но любопытно ограниченное. –