Hirdetés

Keresés

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

  • adam_

    senior tag

    válasz Sk8erPeter #3154 üzenetére

    Szia,

    készítettem egy demót az elképzelésemről. Mielőtt linkelném a fiddle-t, leírnám, hogy jelenleg mi a felállás:

    Kollégám szerint egyenlőre felesleges frissíteni Drupal alatt a JQuery-t, mert az on() felhasználásán kívül jelenleg nem nyerünk vele sokat.. tehát marad az esetünkben a delegate() parancs és az ősrégi JQuery :U Nem vitatkozom vele. :)

    A show() / hide() témával kapcsolatban kollégám azt írta, hogy elméletben így lehetne megoldani:

    - toggle link hozzáfűzése a DOM-elemekhez ( hide()/show() )
    - optional a show() előtt a többi kapcsolodó DOM-elemet rejtsük el

    Egy lehetséges forgatókönyv hozzá:

    - toggle link kap egy data-target="ziel-id" -t és opcionálisan data-hide="other"

    vagy egy másik felállás szerint:

    - Cél elemnek van egy id-ja és egy közös osztályuk pl.: toggle-box

    Tehát a toggle-link és toggle-box osztállyal így variálhatunk. Toggle link osztály megadása az összes trigger elemnek (tehát menü-trigger + form-trigger), majd a lenyiló tartalmak pl menü-box + form-box nak is adunk egy közös osztályt toggle-box néven. Majd egy lehetséges kód hozzá:

    $(document).delegate('.toggle-link', 'click', function() {
    var target = $(this).attr('data-target'),
    hide = $(this).attr('data-hide');

    if(hide == 'other') {
    $('.toggle-box').hide();
    }
    $('#'+target).toggle()
    return false;
    });

    Szóval az a lényeg, hogy valahogy párhuzamosan elérjük, hogy a user ne tudjon egyszerre a login (jelen esetben zöld) és a menü trigger ikonjára (fiddleben ez piros kocka) is kattintani ezzel lenyitva mind a két boxot. Csak szépen az egyiket tudja lenyitni egyszerre.

    Jelenleg a fiddleben egyszerre lenyílik a menü és a login box is, ha rákattintunk, és ez valóban nem szép.

    Hogyan tudnám a mostani fiddle példámban ezt megoldani, az új kód segítségével? Pluszban ugye jó lenne elérni, ha a user a menüre kattint, onnan jelentkezzen be, közben meg párhuzamosan ne tudjon a login-trigger(zöld kocka)-ra kattintva is bejelentkezni. Tehát az hide()-olni kellene.

    Valamint még megjegyezném, hogy most már szépen lenyílik a menü ha kis display mérett alatt a kék kockára kattintok, viszont ha ezt követően összehúzom a kijelzőméretét, akkor azt tapasztalom, hogy a navigáció eltünt. Ez miért van? És a login miért marad ugy szépen, ahogy kell?

    Remélem ezúton érthető demót szolgáltattam. :)

    Előre is köszönöm az észrevételeket,

    Ádám

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