Autor Zpráva
frukojka
Profil *
Zdravím,

tento nešťastný příklad jsem vyrobil pro pochopení !importantu (ty jednodušší mi fungují). Vím že toto lze udělat i stokrát jinak, ale nemůžu přijít na to, proč se mi to v tomto případě neobarví na modro ? Díky za rady
Ukázka

<p onclick="cerveny()"> Červeně </p> 
<p onclick="modry()"> Modře </p>
<p id="myTxt"> </p> 

<script> 
function cerveny()
{var xx = "<b style=color:red> Barevný výstup funkce <br>";
document.getElementById("myTxt").innerHTML+=xx; }

function modry(){var xx = "<b style=color:blue; !important>"; cerveny()}
 </script>
Lonanek
Profil
Protože výpis je pouze červeně.
Trejpa
Profil
frukojka:
V každé funkci vytváříš lokální proměnnou xx. Její hodnota se po ukončení funkce zapomene. Z druhé do první funkce se její hodnota nepředá. Fungovalo by to s globální proměnnou, tedy definovanou (var xx = "";) před funkcemi a ve funkcích jen přiřazovat bez var (xx="<p style=color:red>").

Ale celé to máš postaveno neprakticky. Doporučuji použít jednu funkci a jako její parametr volat rovnou anglický název barvy. Příklad.

Mimochodem, var xx = "<b style=color:blue; !important>"; určitě neudělá to, co chceš. Pokud v hodnotě vlastnosti značky používáš mezeru, musí být v uvozovkách nebo apostrofech, protože mezera je jedním ze znaků, kterým se oddělují jednotlivé vlastnosti. Zmíněný zápis by prohlížeče vyhodnotily jako značku se dvěma vlastnostmi, druhá je neznámá, chybná. Takže raději nějak takto: var xx = "<b style='color:blue !important'>"; nebo var xx = "<b style=\"color:blue !important\">";. A středník patří případně až za !important, ne před něj.

(Nikdy není tak špatně, aby bylo na !important.)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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