Добрый день.
Чем отличается метод .bind() от .on() в jQuery?
Например:
$('div').on('click',function(){...})
$('div').bind('click',function(){...})
Добрый день.
Чем отличается метод .bind() от .on() в jQuery?
Например:
$('div').on('click',function(){...})
$('div').bind('click',function(){...})
.on() - новый метод установки обработчиков событий. Введен в 1.7. Объединяет в себе функциональность .bind(), .live(), .delegate(). Начиная с 1.7 эти три метода считаются устаревшими.
В последнем jQuery метод .bind() считается устаревшим, но еще поддерживающимся, при его вызове происходит вызов .on()
bind: function( types, data, fn ) {
return this.on( types, null, data, fn );
} //код из jquery-1.7.2
Читайте полное описании метода .on()
По сути одно и тоже, но с официальной документации
As of jQuery 1.7, the .on() method is the preferred method for attachingevent handlers to a document.
разве .live от .on не отличается тем что .live поддерживает элементы добавленные динамически на страницу, а .on - нет ? – Denis Masster Jun 01 '12 at 10:08
То-есть,
– KiTE Jun 01 '12 at 10:36.on()не может отличаться от.live(), потому что.live()выполняется через.on(), и, по сути, является подмножеством. А то что он считается устаревшем это в офф. документации написано. Ключевое слово "Deprecated".А еще можно глянуть в исходник и, к своему удивлению, обнаружить что:
Плюс ключевик
– KiTE Aug 10 '12 at 12:59Deprecatedкак бы намекает...