Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

Javascript delay functie probleem

Pagina: 1
Acties:

  • Raem
  • Registratie: Oktober 2005
  • Laatst online: 00:44
Ik wil graag een javascript functie laten vertragen, maar het werkt niet zoals ik dat wil.

Ik heb een landkaart met verschillende punten waar je overheen kunt scrollen. Als je over zo'n punt scrolt wordt er een javascript functie aangeroepen en wordt er een DIV zichtbaar met daarin informatie over dat punt waar je over scrolt. Als je met je muis er weer afgaat verdwijnt die DIV weer. Wat ik wil is dat de DIV niet meteen verdwijnt maar na een x aantal seconden.

Ik heb dit geprobeerd met setTimeout.

code:
1
onMouseOut="setTimeout('alert(\'hello\')',2000);"


Bovenstaande werkt gewoon. Als ik met mijn muis van zo'n punt af ga komt er na twee seconden een alert.

Wanneer ik die alert melding echter vervang voor de functie om de DIV te laten verdwijnen werkt het niet en blijft de DIV gewoon staan.

code:
1
onMouseOut="setTimeout('MM_showHideLayers('lay#simplemap_id#','','hide')',2000);"

https://psnprofiles.com/RaemNL


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je escaped niet goed ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Exception
  • Registratie: Augustus 2006
  • Laatst online: 21:24
In je eerste code (met de alert) escape je de singlequotes inderdaad netjes, maar in je tweede code niet.

code:
1
onMouseOut="setTimeout('MM_showHideLayers(\'lay#simplemap_id#\',\'\',\'hide\')',2000);"


offtopic:
Correct me if i'm wrong

  • Raem
  • Registratie: Oktober 2005
  • Laatst online: 00:44
Die vervelende quotes ook altijd!

Maar het werkt, bedankt! :)

https://psnprofiles.com/RaemNL


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Raem schreef op donderdag 09 oktober 2008 @ 12:11:
Die vervelende quotes ook altijd!
Kwestie van jezelf bewust maken van het feit dat je zo nu en dan moet escapen en waarom dat zo is ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 11-11 10:24

Bosmonster

*zucht*

Daarom is het ook handiger gewoon een functie-ref mee te geven ipv een string.

JavaScript:
1
setTimeout(function(){alert('test')},2000);

  • RetroTycoon
  • Registratie: Juli 2008
  • Laatst online: 14-11 14:15
Dat voorkomt idd vaak fouten (waar ik mezelf ook op betrap O-)), maar dat is denk ik op alle programmeertalen van toepassing :)

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

setTimeout met een string als "functie" (niet dubbelzinnig bedoeld :P) is ook eigenlijk gewoon een eval. En die zijn evil.

Maar otoh is een event handler in html ook een verkapte eval ;)

日本!🎌


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 11-11 10:24

Bosmonster

*zucht*

_Thanatos_ schreef op donderdag 09 oktober 2008 @ 20:13:

Maar otoh is een event handler in html ook een verkapte eval ;)
Maar otoh zijn die vandaag de dag ook niet meer 'the way to go', maar doen we alles netjes met onubtrusive javascript natuurlijk ;)

JavaScript:
1
onMouseOut="setTimeout('alert(\'hello\')',2000);"


Veel fouter als dit kan het dus eigenlijk niet worden, eval in eval.

[ Voor 18% gewijzigd door Bosmonster op 10-10-2008 09:34 ]

Pagina: 1