Чем отличается .click от on('click') ?
Когда и что лучше использовать?
Когда и что лучше использовать?
Ну в своих скриптах я так делаю: onclick при ajax запросе, чтоб загрузить скрипт и вывести содержимое без перезагрузки страницы например a href=#faq onclick=faq(); А обычный click использую в пределах одного скрипта/страницы $('.ska').click(function(e) действие. Даю класс ska, после клика по которому выполнится прописанное действие
Как понимаю, речь про jQuery?
$('селектор').click(функция) является синтаксическим сахаром для
$('селектор').on('click', функция)
В такой форме обе конструкции идентичны - назначение обработчиков событий уже существующим на странице тегам. Но .click() на несколько символов короче.
Но у on() есть дополнительные возможности:
1. Индивидуальные методы (вроде .click()) есть не для всех событий, тогда как on() позволяет повесить обработчик на любое событие.
2. Вместо одного 'click' можно перечислить сразу несколько событий - если им требуется единый обработчик.
3. Возможность удалять обработчик события, используя off()
4. Задание обработчика в виде:
$(document).on('click', 'селектор', функция)
В этом случае обработчик назначится не только уже существующим тегам, но и автоматически назначится тегам с 'селектор', которые будут созданы позже JS-кодом. Это реализуется через механизм "делегирования событий". И, кстати, вместо document можно использовать любой охватывающий тег.
on() отличается от . click() тем, что имеет возможность создавать делегированные обработчики событий, передавая параметр selector, тогда как . click() нет.