Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2014, 16:43
Интересующийся
Отправить личное сообщение для Art!P Посмотреть профиль Найти все сообщения от Art!P
 
Регистрация: 24.06.2012
Сообщений: 12

Live() on() обработчик
Для сайта прикрутил jQuery версии 1.11, обнаружил сюрпризы.
.live() теперь нет в версиях старше 1.9 (даже не представляю себе ту парадигму, при которой создатели решили выпилить лайв из библиотеки. Зачем?)

Вместо этого используется .on() с более сложным синтаксисом.
Вопрос у меня возник по поводу обработчика событий.
Собрал пример http://jsfiddle.net/Xjbw9/
Событие установил на 'html' в документации есть примеры с объектом document. Но пример работает.

На что правильнее ставить обработчик .on() чтобы поведение было таким же предсказуемым как live?
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2014, 17:09
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Art!P
даже не представляю себе ту парадигму, при которой создатели решили выпилить лайв
Вообще, эта так называемая "парадигма" - былинный фейл. Есть, конечно, места, где этот паттерн уместен, но нужно понимать, что делаешь. Но jQ-программист по определению не понимает: он херачит и радуется, что работет, не вникая, что да как. В чём фейл? jQ - это api для создания несистемного кода. Просто разрозненных кусочков. Никакой архитектуры. Зато порог вхождения - нулевой. Я слышал, что в интернате для имбицильных детей ввели программу: дети пишут jQ-плагины и выкладывают это на гитХаб. В свете их умственных проблем, они совершенно не осознают, что делают, зато весело хломают в ладоши и, пуская слюни, смеются.
Сообщение от Art!P
Зачем?
Наверное, чтобы был один метод, а не куча: delegate, bind, live.
Сообщение от Art!P
На что правильнее ставить обработчик .on() чтобы поведение было таким же предсказуемым как live?
Думаю, что .live вешался на document.
Ответить с цитированием
  #3 (permalink)  
Старый 19.04.2014, 17:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Art!P
На что правильнее ставить обработчик .on() чтобы поведение было таким же предсказуемым как live?
на элемент который будет содержать вновь созданные элементы - у вас это $('#form')
Ответить с цитированием
  #4 (permalink)  
Старый 19.04.2014, 17:37
Интересующийся
Отправить личное сообщение для Art!P Посмотреть профиль Найти все сообщения от Art!P
 
Регистрация: 24.06.2012
Сообщений: 12

Спасибо, думаю то же.

Это конечно, очень здорово что jQuery не стоит на месте и развивается. Но книги по нему быстро становятся очень не актуальными. У меня книга есть Б.Бибо и И.Кац которая написана про 1.4, когда читал уже тогда заметил разницу между 1.4 и 1.6. Можно висеть на старых версиях, это не запрещается. Интуиция подсказывает, что новые версии выходят с непроста и вероятно в них есть важные исправления (правда не слежу за проектом).
И не приятно, и нужно время на эти нюансы, а хочется новья.
Ответить с цитированием
  #5 (permalink)  
Старый 19.04.2014, 18:05
Интересующийся
Отправить личное сообщение для Art!P Посмотреть профиль Найти все сообщения от Art!P
 
Регистрация: 24.06.2012
Сообщений: 12

Сообщение от рони Посмотреть сообщение
на элемент который будет содержать вновь созданные элементы - у вас это $('#form')
Это логично. А если добавляемый код, динамически передвигается по дереву (DOM)? То лучший предок объект document?

PS. Когда был лайв об этом даже не задумывался, лайв ставил обработчик на пока не существующий селектор где-бы он не был в дереве документа. Раньше было лучше! И мороженое вкуснее и трава зеленее.

Последний раз редактировалось Art!P, 19.04.2014 в 18:12.
Ответить с цитированием
  #6 (permalink)  
Старый 19.04.2014, 18:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Art!P,
да
Ответить с цитированием
  #7 (permalink)  
Старый 19.04.2014, 18:21
Интересующийся
Отправить личное сообщение для Art!P Посмотреть профиль Найти все сообщения от Art!P
 
Регистрация: 24.06.2012
Сообщений: 12

Спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
live обработчики FanAizu jQuery 11 31.03.2013 15:58
Как заставить выполняться обработчик после всех имеющихся обработчиков данного элемен Анатолий Саратовцев jQuery 2 08.10.2012 18:49
Как снять обработчик с очередью FanAizu jQuery 0 11.02.2012 19:28
live() и свой обработчик события igsavenko jQuery 2 14.02.2011 01:23
Как "обмануть" обработчик события? itPiligrim Events/DOM/Window 0 13.05.2010 22:55