WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Javascript setTimeout (https://www.wn.se/forum/showthread.php?t=1039275)

Althalos 2009-11-24 12:54

Javascript setTimeout
 
Varför fungerar inte det här:
function updateImage() {
if ($(".girl-img").css("background-position-y") == "-96px") $(".girl-img").css("background-position-y", "-474px");
if ($(".girl-img").css("background-position-y") == "-474px") $(".girl-img").css("background-position-y", "-837px");
if ($(".girl-img").css("background-position-y") == "-837px") $(".girl-img").css("background-position-y", "-96px");
window.setTimeout(updateImage(), 2000);
}
updateImage();

tack

StefanBergfeldt 2009-11-24 13:04

Ska det inte vara
window.setTimeout("updateImage()", 2000);

Althalos 2009-11-24 14:04

Det fungerar inte heller. Felmeddelandet i konsollen är att updateImage är undefined. Så det måste finnas något annat fel också.

jag ska även säga att runt alltihop så ligger $(document).ready(function() { });

dotvoid 2009-11-24 14:22

Du ska skicka med en referens till den funktion du ska använda så här:
window.setTimeout(updateImage, 2000);

Alternativt så fungerar det också med en sträng innehållande javascript
window.setTimeout("updateImage()", 2000);

Annars så skickar du ju in returvärdet från updateImage() som första parameter till setTimeout. Det är ju inte riktigt vad du vill.

dotvoid 2009-11-24 14:30

Citat:

Ursprungligen postat av Althalos (Inlägg 20332749)
Det fungerar inte heller. Felmeddelandet i konsollen är att updateImage är undefined. Så det måste finnas något annat fel också.

jag ska även säga att runt alltihop så ligger $(document).ready(function() { });

Glömde. Det förklarar ju saken. Läs på lite om scope. Funktionen updateImage() finns ju bara i kontexten av den anonyma funktion du skapar ovan.

Lägg definitionen av updateImage() utanför dokument.ready()

Althalos 2009-11-24 16:46

Ahh... jag började tro att det inte fanns någon logik i det hela, men det finns det naturligtvis alltid. Tack så jättemkt :)


Alla tider är GMT +2. Klockan är nu 06:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson