Vraag & Antwoord

Webprogrammeren & scripting

Javascript: pop-up menu vertragen.

3 antwoorden
  • 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
  • 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)
  • 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

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.