Avatar billede celine Nybegynder
21. marts 2004 - 10:30 Der er 12 kommentarer og
1 løsning

hvorfor følger menuen ikke med

jeg er ved at lave en webside i dhtml uden frames. Menuen ligger i ekstern javascript fil. Den hentes fint nok ind men klikker man på en knap, fremkommer den ønskede side godtnok men menuen er forsvundet. Her er min kode for menuen:(jeg har ikke kopieret styles med over)

var menu = '<div id="menu">'+
'<table border="0"  cellspacing="0" cellpadding="1" id="menuHolder">'+
'<tr><td>'+
'<a href="CV.htm" target="_parent" class="link"><div align="center" class="menu" onMouseOver="menuON(this)" onMouseOut="menuOFF(this)">'+
'Min person</div></a>'+
'</td>'+
'<td>'+
'<a href="#" class="link"><div  align="center" class="menu" onMouseOver="menuON(this)" onMouseOut="menuOFF(this)">'+
'Websites</div></a>'+
'</td>'+
'<td>'+
'<a href="#" class="link"><div  align="center" class="menu"  onMouseOver="menuON(this)" onMouseOut="menuOFF(this)">'+
'Web demoer</div></a>'+
'</td>'+
'<td>'+
'<a href="#" class="link"><div align="center" class="menu"  onMouseOver="menuON(this)" onMouseOut="menuOFF(this)">'+
'Flash filer</div></a>'+
'</td>'+
'<td>'+
'<a href="#" class="link"><div align="center" class="menu"  onMouseOver="menuON(this)" onMouseOut="menuOFF(this)">'+
'Illustrationer</div></a>'+
'</td>'+
'</tr>'+
'</table></div>';
document.write(menu);

function menuON(id)
{
    id.className="menuAktiv"
}
function menuOFF(id)
{
    id.className="menu"
}
Avatar billede roenving Novice
21. marts 2004 - 11:15 #1
Har du også kald til menuen på f.eks. CV.htm ?-)
Avatar billede celine Nybegynder
21. marts 2004 - 19:27 #2
ja - det har jeg :-)
Avatar billede roenving Novice
21. marts 2004 - 19:37 #3
Du bruger target="_parent" -- er det fordi du har noget (i)frame-ting i din sideopbygning ?-)
Avatar billede celine Nybegynder
21. marts 2004 - 19:59 #4
nu har jeg fået det til at virke, det var en syntaksfejl i cv.htm. Nej jeg bruger ikke frame, så du ret det er jo egentlig overflødig med target.
Avatar billede roenving Novice
21. marts 2004 - 20:12 #5
Forøvrigt er det skørt at bruge className til at skifte class on-the-fly på allerede etablerede elementer, fordi det tvinger browseren til at smide sit css-DOM-træ ud og starte forfra med at bygge et nyt ...

-- du kan med større fordel udskifte de emkelt-properties, som rent faktisk bliver ændret !-)
Avatar billede celine Nybegynder
22. marts 2004 - 13:21 #6
Det forstår jeg ikke helt. Jeg er lige startet med javascript sååå !-)
Avatar billede roenving Novice
22. marts 2004 - 20:34 #7
Hvis du bruger en browser, som forstår css, opretter den ved load af siden et bibliotek over alle de elementer, som findes på siden ...

I det bibliotek beskrives det, hvordan hvert enkelt element skal vises udfra de styles, som er sktive for det pågældende element, evt. med de afvigelser, som forekommer f.eks. ved mouseover ...

Det hedder et css-DOM-træ, da styles ofte er afhængige af, hvilken position elementerne har indeni andre elementer (altså ligesom træstrukturen på f.eks. en harddisk !-)

Hvis du ændrer class på eet eneste element, vil browseren smide hele biblioteket ud og oprette det forfra, hvilket selvsagt ikke er særligt optimalt ...

På de fleste hjemmesider vil dette træ dog være så lille, at man ikke vil opdage, at operationen udføres, men har man nogle forskellige ting inde i hinanden, og den nesting er bare lidt dyb, vil opdateringen se mærkelig ud, da der vil være en 'uforklarlig' forsinkelse ...

Hvis du så kigger på forskellen mellem de to classes, menuAktiv og menu, vil du sikkert se, at der højest er to eller tre properties, som er forskellige, og så kan man meget hurtigere nøjes med at udskifte dem, f.eks.

function menuON(id)
{
    //id.className="menuAktiv"
    id.style.color = 'red';
    id.style.textDecoration = 'underline';
}
function menuOFF(id)
{
    //id.className="menu"
    id.style.color = 'blue';
    id.style.textDecoration = 'none';
}

På den måde skal der blot udskiftes et par stykker papir i biblioteket, og browseren behøver ikke trække alle bøgerne ud fra hylderne for at finde ud af, hvilken rækkefølge de skal stå i !-)
Avatar billede celine Nybegynder
30. marts 2004 - 21:16 #8
Nu har jeg prøvet at lave det om og det virker. Tak for hjælpen.
Avatar billede roenving Novice
30. marts 2004 - 21:29 #9
-- så velbekomme '-)
Avatar billede celine Nybegynder
15. april 2004 - 08:58 #10
selv tak
Avatar billede celine Nybegynder
15. april 2004 - 08:59 #11
jeg ved ikke hvad der er galt men ligemeget hvad jeg forsøger så kan jeg ikke acceptere dit svar. Den går bare tilbage igen og skriver det er ikke accepteret.
Avatar billede roenving Novice
16. april 2004 - 03:39 #12
Du skal markere et navn i boksen til venstre, før du kan acceptere !-)
Avatar billede roenving Novice
20. april 2004 - 09:42 #13
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester