Что другое между двумя инструкциями ниже в jQuery:
1) с .bind
$("#username").bind('click',function(){
//@todo
});
2) без .bind()
$("#username").click(function(){
//@todo
});
Итак, когда мне нужно использовать один из них?
Что другое между двумя инструкциями ниже в jQuery:
1) с .bind
$("#username").bind('click',function(){
//@todo
});
2) без .bind()
$("#username").click(function(){
//@todo
});
Итак, когда мне нужно использовать один из них?
Нет никакой разницы. Если вы прочитали документы для .click
, вы увидите следующую строку:
Этот метод является ярлыком для .bind('click', обработчик)
Вы можете подтвердить это, быстро взглянув на источник jQuery:
function (data, fn) {
if (fn == null) {
fn = data;
data = null;
}
//Notice the call to bind on the following line...
return arguments.length > 0 ? this.bind(name, data, fn) : this.trigger(name);
}
Я стараюсь использовать .click
над .bind
, просто потому, что быстрее писать. Тем не менее, .bind
может использоваться для присоединения одного и того же прослушивателя к нескольким событиям, поэтому он полезен в этом случае:
$("#something").bind("click mouseover", function() {
//Do stuff
});
Чтобы расширить комментарий @Tomalak, .bind
также полезен при работе с настраиваемыми событиями. Для почти любого другого события существует метод быстрого доступа, как и .click
. Источник jQuery выглядит следующим образом:
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup error").split(" "), function( i, name ) {
/*Call .bind for the respective event. There is a shortcut method
for each of the events listed above*/
});
Нет разницы, .click
является ярлыком для .bind('click',
.
.click()
, вызываемый без аргумента, является ярлыком для .trigger('click'
.
В этом виде нет разницы. Метод click
является всего лишь ярлыком для bind('click', ...)
. Что использовать - это исключительно вопрос предпочтения/стиля
Это просто ярлык. Между ними нет НИКАКОЙ разницы.
Этот метод является ярлыком для .bind('click', обработчик) в первых двух вариантах и .trigger('click') в третьем.
Используя .click(), функция не запускается при касании якоря с помощью браузера Safari в iPhone с IOS 4x. Это связано со связью ('click')