Autor Zpráva
Petroff
Profil
Chci se zeptat, zda existuje ekvivalent k např. <elem style="property:xxx !important"> pomocí přístupu k DOM prvku elem
(protože elem.style.property="xxx" mi nepřebije hodnotu,kt. je inline important)
Zatím jsem to řešil dost neohrabaně pomocí innerHTML a replace/regexp.
peta
Profil
Petroff
a = 5;
a = 7;
funguje naprosto spravne, v a = 7;
jinak to fungovat nesmi.
pokud chces neco prirazovat s podminkou, pak tuto podminku musis uvest a to napr pres funkci
function zmenstyl(property,important)
{
if ((elem.style.propertyImportant && important) || !elem.style.propertyImportant)
{elem.style.property = "xxx";
elem.style.propertyImportant = important?1:0;
}
propertyImportant - mnou definovana vlastnost

v CSS slouzi important uplne pro jine ucely a nemel by se vubec pouzivat.
Predevsim, obvykle neni treba, staci prepisovat pres nadrazeny prvek s id nebo jiny.
Chamurappi
Profil
Reaguji na petu:
Reaguj prosím jen tehdy, když pochopíš dotaz. Petroff hledá způsob, jak nastavit styl s „!important“, nikoliv nějakou svoji definovanou proměnnou.
Navíc ta funkce, kterou uvádíš, nedává nesmysl. Pokud něco nastavuješ do elem.style.property, tak se k tomu nepoužívá argument property.

Reaguji na Petroffa:
Pokud vím, tak to, co řešíš, nejde nijak jednoduše spolehlivě vyřešit.
Zkus se zcela vyvarovat upravování stylů skriptem. Měň vždy jen className.
Petroff
Profil
To Chamurappi:
Díky, myslel jsem si to (že u inline stylů není možné důležitost nastavit - přestože musí být její hodnota někde ve vlastnostech prvku uložená)
Mě to funguje s tím innerHTML spolehlivě
- použití JS je bez obav (reklam.lištu stejně vygeneruje JS, takže se při vypnutém skriptování nezobrazuje)
- a je nutné ( pár pravidel kt. chci změnit je inline !important, ty zbylé dám do CSS s !important - čímž přebiju normální inline styly)
peta
Profil
Chamurappi
A pan chytry.

"nejde nijak jednoduše spolehlivě vyřešit"
Jenze, to jsem se pokusil take naznacit, vypsanim prikladu. To, co provadi, je normalni prirazeni hodnoty. Je mozne, ze existuje nejaka JS/CSS vlastnost, kde se da nastavit important. To jsem cekal, ze reknes ty. Takze taky te nic nenapada.

Ale pridal jsem moznost, jak tuto vlastnost nasimulovat v JS, mozna s drobnou chybnou, ale snad by si poradil. Simulace neni dokonala, pochopitelne CSS important neprebiji.

function zmenstyl(property,important)
{
if ((elem.style.propertyImportant && important) || !elem.style.propertyImportant)
{elem.style[property] = "xxx"; elem.style[property+'Important'] = important?1:0;}
}

Nevim, co ti na tom nedava smysl, kdyz to funguje jako JS expression hover, proste si tam vytvoril nejakou pomocnou promennou. (jeden clovek z forum.builder.cz to ma tusim na webce)
Viz:
http://www.volny.cz/peter.mlich/www.htm#mssub8
editor 26k



Petroff
className je vyborny tip, menit to pres ID nadrazeneho objektu taky. Nejlepsi je se takovym divokym kombinacim vyhnout.
Important jsem pouzil pouze pri ladeni stylu, kdy jsem si tak overoval, jestli ladim spravny prvek.
Joker
Profil
peta
A pan chytry.
Nic proti, ale já u té první odpovědi taky nepochopil, "co tím chtěl básník říci"

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: