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

  • jeges

    senior tag

    válasz zserrbo #16 üzenetére

    szia,
    én a következőket próbálnám ki:
    this helyett $(this)
    :eq() helyett .eq() -- beágyazott (úgy értem, a :xxx stílusú) selectorok nem szokták szeretni az ilyen hivatkozásokat, .eq() igen.
    ha még mindig nem megy, .each() eljárással próbálkozz. nem feltétlen szükséges, de számomra legalábbis átláthatóbbá válik az aktuális "környezet" (azaz éppen mit jelent a this/$(this) ). aztán ha működik, lehet optimalizálni.

    valszeg elég lenne valami ilyesmi:

    $(".almenu").each(function(){
    $(this).bind("click",function(){
    $(".leftcontent", ".leftmodule").hide();
    $(".leftcontent", ".leftmodule").eq( $(this).index() ).show();
    });
    });

    ehhez persze el kell intézni, hogy alapértelmezésben minden leftcontent display:none legyen. én csinálnék egy visible class-t, ami display:block-ot állít, és azt adnám a leftcontent-hez. a fenti így nagyjából úgy nézne ki, hogy

    $(".almenu").each(function(){
    $(this).bind("click",function(){
    $(".leftcontent", ".leftmodule").removeClass("visible");
    $(".leftcontent", ".leftmodule").eq( $(this).index() ).addClass("visible");
    // esetleg: $(".visible").show();
    });
    });

    nem túl optimális a megoldás, de 3-4 gomb esetén nincs érzékelhető különbség.
    elnézést, elírás lehet benne még, mer' nem teszteltem...

    megjegyzés: mindig érdemes minél pontosabb class selectorokat használni, mer' sokat tud lendíteni az oldal performanciáján (lásd $(".leftcontent", ".leftmodule") ). ahol lehet, ott pedig inkább id, az a leggyorsabb.

    [ Szerkesztve ]

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