Pagina 1 van 1

javascript onmouseout na enkele seconde

Geplaatst: 23 mar 2006, 19:56
door sukkelaap
hoe kan je met javascript een scriptje maken dat zo werkt:

Met ONMOUSEOUT kan je een javascript in gang zetten. Dit moet alleen niet direct bij me onmouseout werken maar een seconde daarna.

Is dit mogelijk?

Zodat als je over een button gaat deze pas na een seconde terug springt naar zijn eerdere layout.

Geplaatst: 23 mar 2006, 20:42
door Paul
setTimeOut().
Daar kan het mee ;)

Geplaatst: 24 mar 2006, 00:36
door sukkelaap
Ok dit is gelukt.
Maar is het ook mogelijk om iets te maken dat deze functie niet meer wordt doorgevoerd wanneer je al over een ander button gaat met dat zelfde soort script erachter. Anders gaan er 2 dingen door elkaar.

Dus hoe kan je bij een nieuwe actie die timer stop zetten?

Geplaatst: 24 mar 2006, 00:50
door sukkelaap
Ook hier heb ik al oplossing voor, maar nog wel een ander foutje die ik hierbij heb gemaakt.

Dit is het script:

Code: Selecteer alles

function getPosOut()
{
   timer = setTimeout(\"getPos('".$bbn."')\",500); 
}
function getPosOutClear()
{
   clearTimeout(timer); 
}
- Bij mouseover van button wordt er iets in werking gebracht
- Bij mouseover wordt ook getPosOutClear()
- Bij mouseOUT wordt getPosOut() opgeroepen

Nu is het probleem dat wanneer je over een button gaat altijd de functie getPosOutClear() wordt uitgevoerd terwijl die niet altijd van toepassing is. Hierdoor ontstaat er een fout in het script. Is dit op te lossen? Is het te checken of de
timer = setTimeout(\"getPos('".$bbn."')\",500);
op dat moment in functie is?

Geplaatst: 29 mar 2006, 17:53
door sukkelaap
Dus hoe kan je ervoor zorgen dat de clear functie niet wordt gebruikt als timer niet is ingesteld?

Geplaatst: 29 mar 2006, 18:10
door ElbertF
Gokje, moet dit niet werken?

Code: Selecteer alles

function getPosOut()
{
	timer = setTimeout(\"getPos('".$bbn."')\",500);
}
function getPosOutClear()
{
	if ( timer )
	{
		clearTimeout(timer);
		timer = false;
	}
}

Geplaatst: 29 mar 2006, 18:16
door sukkelaap
nee, dit had ik al geprobeerd. :wink:

Geplaatst: 29 mar 2006, 19:56
door ElbertF
Probeer 't eens met:

if ( timer != undefined )

Geplaatst: 29 mar 2006, 20:05
door sukkelaap
nog steeds niet :(

Geplaatst: 29 mar 2006, 20:10
door Paul

Code: Selecteer alles

var timer = false;
function getPosOut()
{
   timer = setTimeout(\"getPos('".$bbn."')\",500);
}
function getPosOutClear()
{
   if ( timer )
   {
      clearTimeout(timer);
      timer = false;
   }
}
mischien? :)

Geplaatst: 29 mar 2006, 20:13
door sukkelaap
Ja dit werkt, hartelijk bedankt ! :bier: