Hansi: setTimeout

Hallo,

habe ein kleines Problem mit setTimeout.
Ich habe eine JS-Funktion, die mir über getElementById einen Text bzw. Satz auswählt.
Die id vom selektierten Satz übergebe ich einer Funktion, die die Farbe des Satzes bei jedem Funkitonsaufruf ändernt (dimmt).

function f_1 {
 satz_id = //ermittle gewünschten Satz
 f_2(satz_id);
 f_1();
}

function f_2 (satz_id){
 aktuelle_Farbe = //ermittle Farbe
 document.getElementById(satz_id).style.color=aktuelle_Farbe;
 f_2(satz_id); //ohne setTimeout gehts, aber Farbänderung zu schnell
 //setTimeout("f_2", 200);  --> so gehts bei mir leider nicht!
}

Problem mit setTimeout ist, dass die Funktion f_1 weiterläuft bevor setTimeout("f_2") ausgeführt wird.

Gibts ne bessere Funtion als setTimeout oder kann ich mein dimm-Problem anderst lösen?

Hansi

  1. Hi,

    Problem mit setTimeout ist, dass die Funktion f_1 weiterläuft bevor setTimeout("f_2") ausgeführt wird.

    Natuerlich.
    setTimeput macht nur eine kleine Notiz in den Kalaendar, "zum Zeitpunkt X Aktion Y ausfuehren".
    Nach dem schreiben dieser Notiz laueft das restliche Script weiter.

    Gibts ne bessere Funtion als setTimeout oder kann ich mein dimm-Problem anderst lösen?

    Felix' Artikel Fader-Framework - kleiner Lehrgang zum vernünftigen Schreiben eines JavaScripts hilft beim Einstieg in die verwendeten Techniken.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
  2. hallo,

    Hallo,

    habe ein kleines Problem mit setTimeout.
    //setTimeout("f_2", 200);  --> so gehts bei mir leider nicht!
    }

    warum benutzt du eigentlich die eval variante von setTimeout und rufst f_2 dann noch nicht einmal auf?