ugrás a tartalomhoz

jQuery: .click() vs .bind('click')

Cooty13 · 2012. Nov. 15. (Cs), 14.49
Sziasztok!

Elég sokat használok jQuery-t és felmerült bennem egy elméleti jellegű kérdés.
Esemény hozzáadásnál van-e valami teljesítménybeli különbség az
  1. $('#az-en-elemem').click(function(e){//csinálj valamit});  
és a
  1. $('#az-en-elemem').bind('click',  
  2. function(e){//csinálj valamit});  
között?

A dokumentáció szerint a .click() (egyetemben a többi standard böngésző eseménnyel) egy aliasként szolgál a .bind('click');-hez.

Melyik módszer jobb, ti melyiket használjátok (pontosabban mikor melyiket)?
 
1

Ha olyan gyakran kell

tgr · 2012. Nov. 15. (Cs), 15.44
Ha olyan gyakran kell eseménykezelőt kötnöd, hogy számít a kettő közötti sebességkülönbség, valamit borzalmasan rosszul csinálsz. (Egyébként szerintem friss jQueryben mindkettő az on('click') aliasa, de nem fogadnék rá nagy összegben.)
2

bind

Poetro · 2012. Nov. 15. (Cs), 16.15
Egyébként szerintem friss jQueryben mindkettő az on('click') aliasa

bind
  1. bind: function( types, data, fn ) {  
  2.   return this.on( types, null, data, fn );  
  3. }  
aliasok
  1. jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +  
  2.     "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +  
  3.     "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {  
  4.   
  5.     // Handle event binding  
  6.     jQuery.fn[ name ] = function( data, fn ) {  
  7.         if ( fn == null ) {  
  8.             fn = data;  
  9.             data = null;  
  10.         }  
  11.   
  12.         return arguments.length > 0 ?  
  13.             this.on( name, null, data, fn ) :  
  14.             this.trigger( name );  
  15.     };  
  16.   
  17.     if ( rkeyEvent.test( name ) ) {  
  18.         jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;  
  19.     }  
  20.   
  21.     if ( rmouseEvent.test( name ) ) {  
  22.         jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;  
  23.     }  
  24. });  
3

Ha felmerült benned, ilyen

Poetro · 2012. Nov. 15. (Cs), 16.20
Ha felmerült benned, ilyen elméleti kérdés, miért nem nézted meg a jQuery forrásában, hogy hogyan működnek? Mindekettő egy alias, a click minimálisan lassabb, mivel egy kis ellenőrzést kell végeznie. A legjobb, ha on függvényt használsz. Rövid, beszédes, részletesen konfigurálható, valamint támogat delegate jellegű eseménykezelést.