Autor Zpráva
alex
Profil *
Už jsem zcela v úzkých a tak volám o pomoc...

Mám div, ve kterém jsou jako divy vnořené tyhle elementy, každý zabalený ve svém vlastním divu:
A) Nadpis s barevným podkladem (má přirazený svůj css styl, např. "BarevnyNadpis")
B) Text, který se skrývá nebo ukazuje (má také přiřazený css styl, např. "TextUpoutavky")
C) "Přepínač", který kliknutím by jednak zobrazoval a skrýval Text a současně s tím měnil barvu pozadí pod Nadpisem (implicitně má přiřazený css styl např. "StylPřepínačeZapnuto"

Co umím:
Pomocí "document.getElementById" umím JS funkcí změnit třídu elementu "Přepínač", tj. změnit ze "StylPřepínačeZapnuto" na "StylPřepínačeVypnuto".

Co neumím a chtěl bych:
Aby se současně ze změnou css stylu "Přepínače" změnily i css styly "BarevnyNadpis" a "TextUpoutavky".

Tj. například když JS funkcí změním css třídu "Přepínače" ze "StylPřepínačeZapnuto" na "StylPřepínačeVypnuto", současně s tím se změnil css styl Nadpisu z "BarevnyNadpisModrý" na "BarevnyNadpisČervený".

Díky!

Alex
Str4wberry
Profil
Připojit JavaScriptem vytvořené CSS lze takto: CSS vyhledávání a filtrování obsahu » Připojení CSS pomocí JavaScriptu

Jinak co zmíněné elementy obalit a měnit třídu společného rodiče, nešlo by?
alex
Profil *
Obalením elementů a měněním třídy rodiče myslíš to, že by celý ten obal fungoval jako "přepínač"?
Nebo by šlo i tím zabalením zachovat funkci přepínače jen pro ten jedden element (pokud ano, jak)?
_es
Profil
alex:
že by celý ten obal fungoval jako "přepínač"?
Áno „prepínal“ by sa tak vzhľad elementov vo vnútri obalu.
alex
Profil *
_es:
Áno ‚prepínal‘ by sa tak vzhľad elementov vo vnútri obalu.

Toho jsem se tak trochu bál, přišlo mi to ne jako úplně "čisté a elegantní" řešení.
Další řešení, které mě napadlo, bylo nadefinovat v css různé třídy a pak je postupně pomocí JS skládat, ale to už mi přišlo taky jako overkill... doufal jsem potichu, že existuje něco jednoduchého a elegantního.
Str4wberry
Profil
Změna třídy společného rodiče je naopak medle nejelegantnější řešení.

Živá ukázka
alex
Profil *
Str4wberry:
Živá ukázka

Skvělé, díky moc moc!
To, co jsem hledal a neuměl, bylo použití "parentNode".
Ještě jednou díky!

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: