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 :)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.