anoniem Geplaatst: 24 mei 2002 Delen Geplaatst: 24 mei 2002 Ik gebruik op m'n site een menu die door middel van een layer uitklapt. Werkt best aardig, maar ik zou er graag een kleine vertraging inbouwen zodat het wat makkelijker is om naar het uitgeklapte menu te gaan zonder dat deze direct verdwijnt als je even met je muis van de cel afgaat. De code waar het waarschijnlijk fout gaat: [code:1:aaf6bdc58b] <script language="JavaScript"> <!-- function showmenu(elmnt) { document.all(elmnt).style.visibility="visible" } function hidemenu(elmnt) { document.all(elmnt).style.visibility="hidden" } function hidemenupresentatie() { document.all('presentatie').style.visibility="hidden" } //--> </script> <table> <td onmouseover="showmenu('Presentatie')" onmouseout="setTimeout("hidemenupresentatie()",1000)">voorbeeld</td> </table> [/code:1:aaf6bdc58b] De functie 'showmenu' laat dus het submenu verschijnen. De functie 'hidemenu' laat dit menu weer gebruiken. Op een site ergens had ik gevonden dat de setTimeout functie niet toestaat dat er een parameter wordt meegegeven bij de functie die je aanroept. Dat heb ik dus opgelost door een aparte functie te maken (hidemenupresentatie). De code van hidemenupresentatie werkt prima, want ik heb ook een aparte link gemaakt inde pagina die dezelfde functie aanroept en dat gaat goed. Ik verwacht dus dat er een foutje zit in de setTimeout functie. Kan iemand me hiermee helpen? Zie voor een completer code en een beeld van hoe het werkt deze pagina: http://www.motorchoice.nl/test/mainpage.htm bvd, Elja Quote Link naar reactie
anoniem Geplaatst: 24 mei 2002 Auteur Delen Geplaatst: 24 mei 2002 zoek de verschillen :) [b:3a3bb0b634]fout[/b:3a3bb0b634] <td onmouseover="showmenu('Presentatie')" onmouseout="setTimeout("hidemenupresentatie()",1000)"> [b:3a3bb0b634]goed[/b:3a3bb0b634] <td onmouseover="showmenu('Presentatie')" onmouseout="setTimeout('hidemenupresentatie()',1000)"> btw. je kan aan een setTimeout best variabelen meegeven alleen zal je de scope van deze vars goed in de gaten moeten houden. Op het moment dat de functie in de timeout wordt uitgevoerd wordt de expressie namelijk pas geparsed en als de variabele dan niet bekend is dan krijg je inderdaad niet het verwachte resultaat. Maar je kan bijvoorbeeld vaak ook iets als onderstaande doen: setTimeout("functie('" + var + "')", 1000) Quote Link naar reactie
anoniem Geplaatst: 24 mei 2002 Auteur Delen Geplaatst: 24 mei 2002 Thx Annie, dat helpt inderdaad :) Maarhuh, nu zit ik eigenlijk met het probleem dat ik zo niet het goede effect krijg. Het submenu verdwijnt nu altijd, ook als ik het submenu 'inga' om daar een link te klikken. :( Heb je (of iemand anders) misschien nog een andere manier waarop ik er een kleine vertraging in kan bouwen, oid.. ? Elja Quote Link naar reactie
anoniem Geplaatst: 24 mei 2002 Auteur Delen Geplaatst: 24 mei 2002 dan zet je onmouseover een variabele 'over' op true, en onmouseout die variabele weer op false. De code om te sluiten met een timeout gebruik je dan alleen als die variabele false is. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen