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>
Udfordringerne hober sig op i fødevare- og drikkevareindustrien og gør den til en af de mest sårbare.
24. oktober 2024
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.