Fetz: Probleme mit setTimeout in Schleife

Beitrag lesen

Hallo,

Ich sitze an einem kleinen persönlichen Greasemonkey-Projekt und komme einfach nicht weiter. Jetzt habe ich aus Code mal die Stelle lokalisiert und entsprechend vereinfacht, an der ich nicht weiterkomme. Dabei hat sich herausgestellt, dass es kein Greasemonkey-Problem ist, sondern, dass ich selbst trotz zahlreicher  Beispielcodes für Uhren etc. wohl ein Verständnisproblem mit setTimeout habe. Hier der "Problemcode".

var i,j;
test();

function Hinweis () {
  alert(i);
  alert(j);
}

function test() {
  for (i = 0; i < 1; i++) {
    for (j = 0; j < 2; j++) {
      window.setTimeout("Hinweis()",1000);
    }
  }
}

Das Ergebnis:
-------------
Es kommen hintereinander vier Popups mit den Anzeigen 1, 2, 1, 2
Gewünscht wäre: 0, 0, 0, 1

Irgendwie scheinen die Zählvariablen bereits vor dem durchlaufen des ersten alert hochgezählt zu sein...

Natürlich könnte man das so umstellen, dass es zu den Beispielcodes für Uhren etc. passt, aber dann passt es nicht zu meinem Greasemonkey-Projekt, in dem in bestimmten Abständen eine Funktion mit Übergabe von Zählvariablen aufgerufen werden muss.

Vorab herzlichen Dank.

Gruß, Fetz