Autor Zpráva
XolyCZ
Profil
Ahoj, potřebuju poradit, protože jsem JavaScripty nikdy nepsal, jak to upravit. Mám menu a v něm záložky, které zobrazuju pomocí scriptu. Ten script mi při kliknutí přidá třídu prvku ul, která je nastavená na display:block a tím pádem se mi to menu zobrazí. Problém je ale, že nevím jak to udělat se záložkou, protože mi to tu třídu přidává pořád do toho nadřazeného ul a ne na to, které se má zobrazit jako ta záložka. Ten script je z nějakého videa z YT, přišlo mi to funkčností celkem fajn, vzhledem k tomu, že jsem to chtěl tak, že se na to menu nebo na tu záložku musí kliknout, aby se zobrazila. Tady je ten script:
<script>
    $(document).ready(function(){
        $('.menu').click(function(){
            $('ul').toggleClass('menuActive');
        })
    })
</script>
No a ten druhý je takový.
<script>
    $(document).ready(function(){
        $('.menuTournaments').click(function(){
            $('ul').toggleClass('menuTournamentsActive');
        })
    })
</script>
Nevím jestli to jde nějak spojit dohromady nebo ne. Možná existuje více možností. Kdybych to nechal takhle, možná by to šlo použít tak, že bych nastavil display:block, když klikne na záložku té záložce a zároveň pro menu a zůstalo by to zobrazené, protože on mi tu třídu jak už jsem zmínil výše, přepíše. Chápu, že je asi třeba přepsat to ul v tom druhém scriptu na něco jiného, jestli to tak teda může fungovat, ale nevím jak. Děkuji moc :)


A nebo ještě, když to nějak funguje i s tím, protože obě ul zůstanou v blocku, nastavit script, který mi to menu automaticky schová(stačí upravit třídu), pokud šířka přesáhne určitou hodnotu. Potřebuju to kvůli jinačímu zobrazení menu. Protože je ta šířka už dostatečná, nemusím ho mít schované a může být normálně zobrazené podélně, jenomže když to menu je otevřené a ta šířka přesáhne tu danou hodnotu, změní se zobrazení toho menu, ale rozhází se to, protože to menu co bylo otevřené zůstane otevřené pořád a zobrazí se to nad tím, kterí má být podélně. Našel jsem nějaký script, který hlídá šířku a po překročení nastavené hodnoty se provede, ale nevím jak to zapsat, aby to bylo mířené jenom na to konkrétní ul v navu.

<script>
function myFunction(x) {
    if (x.matches) { // If media query matches
        $('ul').toggleClass(''); //nějak to tady zapsat...
    }
}

var x = window.matchMedia("(min-width:580px)")
myFunction(x) // Call listener function at run time
x.addListener(myFunction) // Attach listener function on state changes
</script>



Mlocik97
Profil
proč to riešite takto obskurdne? ostatne nestačilo by záložkám pridať classu a do selectoru taky (ak správne tomu rozumiem)?
XolyCZ
Profil
Mlocik97:
No však já jim teď třídu přidávám nebo nevím úplně jak to myslíš.

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:

0