Avatar billede mamu Nybegynder
31. oktober 2005 - 18:53 Der er 3 kommentarer og
1 løsning

Skift billede med setTimeout()

Hej eksperter

Jeg har to billeder img01 og img02:

<body onload="chgImg(0)">
<img id="img01" href="#" src="../../images/bg/zoomout01.gif" style="border:0px;" onclick="chgImg(-1)" width="24" height="24">
<img id="img02" href="#" src="../../images/bg/zoomin01.gif" style="border:0px;" onclick="chgImg(1)" width="24" height="24">

som ved onclick kalder følgende funktion:

function chgImg(direction) {
    if (direction == 1)
    document.images['img02'].src = "../../images/bg/zoomin01_pressed.gif";
    else if (direction == -1)
    document.images['img01'].src = "../../images/bg/zoomout01_pressed.gif";
   
    if (direction != 0)
    setTimeout("chgButtom(direction)",1000);
//...+ en masse mere//
}

Humlen er at afhængig af om direction = 1 eller -1 skiftes et af de to billeder ud. Billederne skulle dog gerne skifte tilbage igen efter 1 sekund, hvilket forsøges med:

setTimeout("chgButtom(direction)",1000);

hvor:

function chgButtom(direction) {
    if (direction == 1)
        document.images['img02'].src = "../../images/bg/zoomin01.gif";
    else if (direction == -1)
        document.images['img01'].src = "../../images/bg/zoomout01.gif";

}

Det virker bare ikke - hvad er der galt??
Avatar billede softspot Forsker
31. oktober 2005 - 19:00 #1
Problemet er at direction ikke er defineret i den kontekst som chgButtom bliver kørt i, fordi den bliver kørt når en timer fyrer et event - og det er "længe" efter at den funktion hvor du sætter timeout op er afsluttet...

Du skal i stedet kalde den med en konstant, således:

function chgImg(direction) {
    if (direction == 1)
    document.images['img02'].src = "../../images/bg/zoomin01_pressed.gif";
    else if (direction == -1)
    document.images['img01'].src = "../../images/bg/zoomout01_pressed.gif";
   
    if (direction != 0)
    setTimeout("chgButtom("+direction+")",1000);
//...+ en masse mere//
}
Avatar billede mamu Nybegynder
31. oktober 2005 - 20:10 #2
Super - smid et svar!
Avatar billede softspot Forsker
31. oktober 2005 - 20:19 #3
Kommer der :)
Avatar billede softspot Forsker
31. oktober 2005 - 21:55 #4
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester