Вот два способа записи обработчиков событий:
$('element').on("click",function(){
// do stuff
});
против
$('element').click(function(){
// do stuff
});
Каковы основные различия между ними? Какие ситуации лучше подходят для других?
Согласно документации API jQuery
Метод.on() присоединяет обработчики событий к выбранному в данный момент набору элементов в объекте jQuery. Начиная с jQuery 1.7, метод.on() предоставляет всю функциональность, необходимую для прикрепления обработчиков событий. Для получения помощи в преобразовании из старых методов событий jQuery см..Bind(),.delegate() и.live(). Чтобы удалить события, связанные с.on(), см..Off(). Чтобы присоединить событие, которое выполняется только один раз, а затем удаляет себя, см. Раздел.one()
Функция .on(...)
использует все другие механизмы привязки событий. Он всегда должен работать. Согласно документации API jQuery
Этот метод является ярлыком для.on("щелчок", обработчик) в первых двух вариантах и .trigger("click") в третьем. Событие клика отправляется элементу, когда указатель мыши находится над элементом, а кнопка мыши нажата и отпущена. Любой элемент HTML может принять это событие. Например, рассмотрим HTML:
.click(...)
- это ярлык для element.on("click",...)
click() - это удобный ярлык для on(). Единственный способ, которым он отличается от on(), состоит в том, что если вы вызываете его без параметров, он будет вызывать:
$(element).trigger('click');
on()
для более надежной прямой совместимости.