Quando si utilizza jQuery per collegare un gestore di eventi, c'è qualche differenza tra l'utilizzo del metodo click
$().click(fn)
rispetto all'utilizzo del metodo bind
$().bind('click',fn);
Diverso dal parametro dati facoltativo di bind.
Quando si utilizza jQuery per collegare un gestore di eventi, c'è qualche differenza tra l'utilizzo del metodo click
$().click(fn)
rispetto all'utilizzo del metodo bind
$().bind('click',fn);
Diverso dal parametro dati facoltativo di bind.
Risposte:
Per quello che vale, dalla fonte jQuery :
jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
"change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
// Handle event binding
jQuery.fn[name] = function(fn){
return fn ? this.bind(name, fn) : this.trigger(name);
};
});
Quindi no, non c'è differenza -
$().click(fn)
chiamate
$().bind('click',fn)
click()
è fondamentalmente una scorciatoia per bind('click')
(o, in questo giorno un'epoca, in realtà chiama on('click')
. Per come la vedo io, potresti anche salvarti quella chiamata di funzione extra usando on('click')
direttamente.
+1 per la risposta di Matthew, ma ho pensato di dover menzionare che puoi anche associare più di un gestore di eventi in una volta usando bind
$('#myDiv').bind('mouseover focus', function() {
$(this).addClass('focus')
});
che è l'equivalente molto più pulito di:
var myFunc = function() {
$(this).addClass('focus');
};
$('#myDiv')
.mouseover(myFunc)
.focus(myFunc)
;
C'è una differenza nel fatto che puoi associare eventi personalizzati utilizzando il secondo modulo che hai. Altrimenti, sembrano essere sinonimi. Vedi: jQuery Event Docs