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

  • Sk8erPeter

    nagyúr

    válasz Sk8erPeter #538 üzenetére

    Aha, javítottam .on()-ra, csak rosszul. :D

    Itt a jól működő változat .on()-nal:
    http://jsfiddle.net/Sk8erPeter/RqYYj/

    Közben rájöttem, hogy miért nem működött, azért, mert előtte így csináltam:

    $(".del.enabled").on("click", function(event) {
    var $parent = $(this).parent();
    $parent.remove();
    return false;
    });

    HELYETTE ez a jó:
    $("body").on("click", ".del.enabled", function(event) {
    var $parent = $(this).parent();
    $parent.remove();
    return false;
    });

    VAGY MÉG JOBB (http://jsfiddle.net/Sk8erPeter/RqYYj/1/):
    $(".stuffs_wrapper").on("click", ".del.enabled", function(event) {
    var $parent = $(this).parent();
    $parent.remove();
    return false;
    });

    Utóbbinál kevesebbet kell rohangászni a DOM-fában.
    A magyarázata, amiért így kell megoldani:
    .on() hivatalos doksi:

    "Note that .on() allows a click event on any paragraph--even new ones--since the event is handled by the ever-present body element after it bubbles to there."

    A $(".del.enabled") selector pedig nincs mindig jelen a DOM-ban, pont ez fog a jövőben létrejönni, a gombnyomás hatására.

    Legalábbis gondolom, hogy így magyarázható, de javítson ki valaki, ha ez ebben a formában pontatlan.

    DE azt magyarázza már el valaki plíz, hogy ugyanez miért működik .live()-val:
    http://jsfiddle.net/Sk8erPeter/RqYYj/2/
    :F

    ============================================

    Szerk.:

    (#539) Karma :

    igen, megelőztél, mert közben jó hosszan megírtam ezt a hsz.-t...
    Inkább a fentire találj nekem magyarázatot, hogy miért működik pontosan ugyanez a régi öreg .live()-val! :)

    [ Szerkesztve ]

    Sk8erPeter

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