05. oktober 2006 - 14:14Der er
13 kommentarer og 1 løsning
Skift Class i Javascript
Koden:
function VisOgLoad(value) { //i <= antallet af hoved punkter, ikke særligt dynamisk mend et virker :) //Nulstiller alle div's så de ikke vises for(i = 0; i <= 6; i++) { document.getElementById("menu_"+i).style.display = "none"; //Her vil jeg meget gerne have TD_+i sat til denne class "TDmenu1" } //Her vil jeg meget gerne have TD_+value sat til denne class "TDmenu2" document.getElementById("menu_"+value).style.display = ""; document.getElementById("menu_0").style.display = "none"; }
Har prøvet en masse forskellige bl.a. document.getElementById("TD_"+i).className = "TDmenu1"; i min for løkke, men det hjælper ikke... får et "Object var ventet" :( - Hvad gør jeg galt :)
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Slettet bruger
05. oktober 2006 - 14:24#1
Kan du ikke poste lidt html også?
Det ser ud til at document.getElementById ikke kan finde et element med id "TD_"+i.
At skifte CSS-klasse er noget af det dårligst performende, man kan foretage sig i en browser. I et komplekst dokument kan det tage op til flere sekunder! Skift i stedet de enkelte style-properties på elementerne ... det er langt mere effektivt.
</style> </HEAD> <BODY> <script type="text/JavaScript"> function VisOgLoad(value) { //i <= antallet af hoved punkter, ikke særligt dynamisk mend et virker :) //Nulstiller alle div's så de ikke vises for(i = 0; i <= 6; i++) { document.getElementById("menu_"+i).style.display = "none"; }
<div id="menu_0"></div> <!-- Undermenuerne --> <div id="menu_1" onmouseover="java script:VisOgLoad(1);" style="display:none;"> Dette er div nummer 1 </div> <div id="menu_2" onmouseover="java script:VisOgLoad(2);" style="display:none;"> Dette er div nummer 2 </div> <div id="menu_3" onmouseover="java script:VisOgLoad(3);" style="display:none;"> Dette er div nummer 3 </div>
<div id="menu_4" onmouseover="java script:VisOgLoad(4);" style="display:none;"> Dette er div nummer 4 </div> <div id="menu_5" onmouseover="java script:VisOgLoad(5);" style="display:none;"> Dette er div nummer 5 </div> <div id="menu_6" onmouseover="java script:VisOgLoad(6);" style="display:none;"> Dette er div nummer 6 </div>
Ideen er at "Punkt 1" skal beholde onover classe indtil man vælger feks "Punkt 3"
Synes godt om
Slettet bruger
05. oktober 2006 - 15:11#5
Så vidt jeg kan se har du navngivet dine divs TD_1, ... TD_6, men din forløkke løber igennem TD_0, ..., TD_6! Så den broker sig jo nok over TD_0 som ikke findes!
- men som sagt, er det en rigtig skidt måde at ændre styling på. Endvidere må du ikke bruge JavaScript pseudo-protokollen i en event-handler ... aldrig 'java script:' i 'onmouseover' eller 'onmouseout'
Helt fint ... jeg har selv gjort det i en snæver vending. Der kan dog være mange andre, der læser med - eller evt. finder dette spm. ved en senere søgning ... ikke mindst for deres skyld ;o)
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.