18. maj 2004 - 15:34Der er
17 kommentarer og 1 løsning
parentNode problem
Case: Jeg har et "a" tag inde i et "li" tag. Dette finder jeg ved hjælp af et className og en "for" løkke. Så lang så godt.
Jeg vil så op og finde alle foran liggende "ul" - parent om man vil.
Det har jeg nogle problemer med.
Jeg har so far flg., som rigtigt nok finder førstkommende "ul" ovenfor til mig:
p = aItems[j].parentNode; while (isTrue = (aItems[j].className == "PE_locationmark") ? true : false) { // isTrue bruger jeg blot til at alert'e med p.parentNode.style.display = "block"; break; // break findes kun for at forhindre en crash }
Problemet kommer så når jeg skal videre op, samt derefter fjerne min "break".
Jeg har forsøgt med:
while (isTrue = (aItems[j].className == "PE_locationmark") ? true : false) { p.parentNode.style.display = "block"; p = p.parentNode; }
-- og det burde vel være rigeligt at checke for tagname ...
-- eller har du det som et hierarki, hvor der ideligt skal søges højere op, for så kunne det være, at du skulle tænke din while til at tage to skridt ad gangen, sådan noget à la det, jeg har i 15:47:13 !o]
p = aItems[j].parentNode; if (isTrue = (aItems[j].className == "PE_locationmark")) { while (p) { if (p.tagName == "UL") p.style.display = "block"; p = p.parentNode; } }
Så virker det endelig. Smid et svar så jeg kan bruge nogle af mine nye 300P *rofl*
Jeg har ikke "bare" skiftet nick, fordi jeg ikke var klar over at man kunne - det er jeg siden hen blevet, men da er det lidt sent, da det brugernavn jeg ville ha, jo nu er optaget af denne nye konto.. :o( Sur røv, but shit happens.
Og med hensyn til koden, ja det burde da give det samme?
Jeg har et sidste (ret irriterende) problem, som jeg dog ikke ved om du kan hjælpe med.
At klasseskift (css) generelt er noget hø, ved jeg godt. Ikke desto mindre har jeg gjort flittigt brug af det her, da jeg gerne ville layoute min app. 100% med css. Som sagt så gjort.
Når jeg mouseover' i mit træ, blinker mine bg billeder noget så forfærdeligt, selvom jeg ikke har nogle js events whatsoever på mouseover, og i min css hover, har jeg blot farveskift. Ikke noget med billedeskift. Er det noget du har stødt på før? :)
Nej, men jeg ville heller ikke drømme om at lave klasse-skift on-the-fly, så jeg har set det ved situationer, hvor et nyt billede har skullet bruges på et element ...
-- og den situation stå du faktisk også i, når du laver eet klasseskift, da browseren så bogstavelig talt smider hele det renderede layout ud, og starter forfra på at beregne sidens udseende !-)
Så vil billeder, du har lagt ind via css altså blive opfattet som 'nye' billeder ...
-- og så har jeg svært ved at forstå dit udsagn om, at du 'gerne ville layoute min app. 100% med css' ?-)
Hvad har det med klasseskift at gøre ?o]
Du kan jo også finde metoder via javascript, som kan læse stylesheetet og lægge de properties på, som findes i de enkelte styles, f.eks. vha. cssRules/cssText/rules ...
Jeg forstår ærligt talt ikke hvad du mener. Én ting er at der re-renderes når der åbnes/lukkes en node (og der dermed sker klasseskift) - det kan jeg sagtens leve med.
Hvad jeg ikke forstår, er at hvis træet fx. er foldet helt ud, og jeg så blot bevæger musen hen over det, så blinker mine background-images. Der sker ikke noget klasseskift, så lige _det_ problem kan jeg ikke se det logiske i.
Mht. til css layout - det er en længere historie, men kort sagt skal træet kunne vises i designview i Dreamweaver, i udfoldet tilstand.
Og jeg kunne ret beset også komme uden om mine classes - fx. med cssText som du selv foreslår. En klasse er dog lettere for folk at style, og min "ikke-forståelse" for problemet er stadig en hindring :o)
Jeg sætter en side op med begge metoder, og ser om det hjælper (markant!).
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.