Autor Zpráva
PepikCZ
Profil *
Používám pro "tabs" - záložky, kdy kliknutím na záložku se mě zobrazí obsah bez znovu načtení.

Mám problém, pokud chci provést označení <li class="active"> ... kdy se sice provede přes CSS označení, ale jQuery mi nedovolí vypsat patřičný obsah, pokud mu natvrdo sám řeknu ... tohle chci označit a vypsat.
Nevíte jak toho docílit?

    $("#tabs li").click(function() {
        //    First remove class "active" from currently active tab
        $("#tabs li").removeClass('active');

        //    Now add class "active" to the selected/clicked tab
        $(this).addClass("active");

        //    Hide all tab content
        $(".tab_content").hide();

        //    Here we get the href value of the selected tab
        var selected_tab = $(this).find("a").attr("href");

        //    Show the selected tab content
        $(selected_tab).fadeIn();

        //    At the end, we add return false so that the click on the link is not executed
        return false;
    });
Camo
Profil
PepikCZ:
Ten predposledný riadok by mal byť podľa mňa takto:
$('a[href="'+selected_tab+'"]).fadeIn(); lebo ty máš v tej premennej iba adresu toho odkazu...
EDIT:
Podľa všetkého by si mohol použiť rovno selektor "a:first" a hneď ho zobraziť miesto toho čarovania s adresou(ak tú adresu nepotrebuješ). Ak ju potrebuješ tak tiež stačí len za to fadeIn prilepiť attr("href").
var a = $(this).find("a:first").fadeIn().attr("href");
PepikCZ
Profil *
Mám v tom guláš :) ... jak tedy mohou daný TAB přes URL ... kde je třeba #tabs1 .... #tabs2 atd. dany tab označit a zobrazit obsah?
Camo
Profil
PepikCZ:
No v prvom rade musíš mať k tomu kódu zodpovedajúce html. Čiže nejaký box s id #tabs, v ňom nejaké položky zoznamu li a v nich odkazy s tými adresami. Máš to tak?
PepikCZ
Profil *
Používám toto, kdy potřebuji, že když zadám v URL #tab3 ... tak, aby se dany tab označil a obsah se zobrazil.


NEBO ... pokud do <li> ... vložím style="active". Záleží co je lepší z pohledu jQuery. Hlavně ať něco funguje.
Kcko
Profil
Hod demo třeba na http://jsfiddle.net/, upravím to.
PepikCZ
Profil *
Vloženo.
Kcko
Profil
$(document).ready(function(){
    $("#tabs li").click(function() {
        //    First remove class "active" from currently active tab
        $("#tabs li").removeClass('active');



        //    Now add class "active" to the selected/clicked tab
        $(this).addClass("active");

        //    Hide all tab content
        $(".tab_content").hide();

        //    Here we get the href value of the selected tab
        var selected_tab = $(this).find("a").attr("href");

        location.hash = selected_tab;

        //    Show the selected tab content
        $(selected_tab).fadeIn();

        //    At the end, we add return false so that the click on the link is not executed
        return false;
    });
    
    if (location.hash)
    {
        
        $("#tabs li a[href='"+location.hash+"']").parent().trigger("click");
    }
});

<
PepikCZ
Profil *
Kcko: Jsem ti velice zavázán. Funguje OK.
Camo
Profil
Kcko:
Toto je podľa teba upravený kód? To načo si tam zaplietol ten location.hash? A čo prosím robí ten trigger?

PepikCZ:
Môžeš mi vysvetliť, čo ti na tom tvojom kóde nefungovalo???
Kcko
Profil
Camo:
Nauč se číst mezi řádky. Dělá to přesně to co zadavatel požadoval.

Máš nějaký problém?
Camo
Profil
Kcko:
"Máš nějaký problém?"
Nó mám, tento:
if (location.hash)
    {
        
        $("#tabs li a[href='"+location.hash+"']").parent().trigger("click");
    }
Chamurappi
Profil
Trochu jsem to tu vyčistil.

Reaguji na Cama:
Kcko očividně neumí své myšlenkové pochody vysvětlit, tak to zkusím já.
Při kliku se změní location.hash, tedy #kus adresy za mřížkou. Kckův kód při načtení zjistí, jestli v adrese mřížka je, a pokud ano, zkusí najít odkaz vedoucí na tuto mřížku. Z odkazu najde jeho rodiče (což asi bude ouško vybíraného tabu) a vyvolá na něm uměle událost click. To dělá ten trigger. Díky této úpravě si tedy stránka jakoby pamatuje, který tab je vybraný, což patrně tazatel chtěl (i když to nepopsal moc srozumitelně).

Teba kto vychoval zlatko?
Příště zkus použít vyhledávač.
Camo
Profil
Chamurappi:
No už som sa pochopil. Bral som tie riadky, ako súčasť tej obsluhy. A oni sú mimo ako vidím. Pošahaná dislexia...

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: