2012-04-19 14 views

risposta

8

Se si guarda il codice jQuery si può vedere che tutto click() non fa altro che eseguire trigger('click'):

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 contextmenu").split(" "), function(i, name) { 

// Handle event binding 
jQuery.fn[ name ] = function(data, fn) { 
    if (fn == null) { 
     fn = data; 
     data = null; 
    } 

    return arguments.length > 0 ? 
     this.on(name, null, data, fn) : 
     this.trigger(name); 
}; 

Nota questo:

return arguments.length > 0 ? 
     this.on(name, null, data, fn) : 
     this.trigger(name); 

In altre parole, "Se nessun argomento vengono passati a click, eseguire trigger('click') ".

+1

Vale la pena ricordare che questa è la Procedura Operativa Standard nel codice sorgente di jQuery o in qualsiasi applicazione decente, se si desidera lo stesso risultato, chiamare lo stesso codice. La differenza di prestazioni tra l'una e l'altra sarà sempre trascurabile. – Blazemonger

Problemi correlati