05. november 2009 - 17:14Der er
3 kommentarer og 1 løsning
settimeout, onmouseout problem
Hej!
Det er sikkert simpelt for en, der er vant til javascript. Men det virker som om mouseout trigger allerede ved mouseover. hvordan sætter jeg den til at holde indtil jeg laver mouseout? (For at være helt præcis, så virker det som det skal ved første mouseover, men ikke ved resten)
script:
function snip(thechosenone) { var newboxes = document.getElementsByTagName("div"); for(var x=0; x<newboxes.length; x++) { name = newboxes[x].getAttribute("name"); if (name == 'regions') { if (newboxes[x].id == thechosenone) { newboxes[x].style.visibility = 'visible'; } else { newboxes[x].style.visibility = 'hidden'; } } } }
et link: <td valign="top" align="left" onmouseover="snip('Alsace');" onmouseout="setTimeout('snip(\'\')', 2000)"><a href="?vine,Alsace" >Alsace</a></td>
en div af flere med forskellige id: <div class="blok" name="regions" id="Alsace"> <a href="?vine,Alsace,1" >André Kientzler</a> <a href="?vine,Alsace,346" >Rolly Gassmann</a> </div>
Diversitet er ikke kun buzzwords og politisk korrekthed, men et spørgsmål om at alle føler sig godt tilpas og kan yde deres bedste.
31. januar 2025
Slettet bruger
05. november 2009 - 18:27#1
Split det i 2 funktioner, en vis og en sluk - det vil gøre det lettere.
Og hvorfor styrte igennem ALLE div'er på siden, ved hver mouseover ? - du ved jo allerede hvilken du vil vise.
var shown = null var sluks = null function vis( therecanbeonlyone ) { if (shown != null) if (sown.id != therecanbeonlyone) shown.style.visibility = "hidden"
Utestet, men vil "i princippet" afstedkomme det du søgte - med færre hestekræfter : )
Det du EGENTLIG spurgte om: Der er browserquirks på spil: mouseover på alsace-div'en nedarves (nogengange) til link'ene - så du ender med en byge af mouseovers og mouseouts - bedst at undgå den slags : )
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.