Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz martonx #12042 üzenetére

    "A .on esetében egy felsőbb biztosan létező DOM elemhez szokás kötni az esemény elkapást, és azon belül szűrni a megfelelő selectorral a megfelelő DOM elementre. Ahogy példát is írtam.
    Másrészt, ha a menü elemeid mindig léteznek, akkor nincs sok értelme a .on-nak, helyette egy sima .click jobb lenne."

    Az utóbbira: pedig jól használta az .on()-t, lásd a példát a hivatalos oldalon:
    http://api.jquery.com/on/

    "Example: Display a paragraph's text in an alert when it is clicked:

    $( "p" ).on( "click", function() {
    alert( $( this ).text() );
    });

    "

    Szóval nem kötelező a selector (nem is csak AJAX-szal betöltendő elemekre használható ez a metódus), SŐT, valójában a .click() csak egy shorthand method az .on()-ra! Lásd a source-t:
    http://james.padolsey.com/jquery/#v=2.0.3&fn=jQuery.fn.click

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

    (Ez a fenti most szépen "ki van bontva", az eredeti source code-ban így látható:
    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 ) {
    return arguments.length > 0 ?
    this.on( name, null, data, fn ) :
    this.trigger( name );
    };
    });

    )

    Persze beszédesebb lehet a .click() (még ha van is overheadje a plusz metódushívás miatt, amivel nem valószínű, hogy itt van értelme foglalkozni).

    Sk8erPeter

Új hozzászólás Aktív témák