• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

HILFE! setTimeout tut nicht wie ich es will ;o((

U

Unregistered

Guest
*heul* - ich hocke schon seit stunden an diesen paar zeilen code und egal was ich mache, die setTimeout-routine, die ich in eine schleife eingebaut habe, wartet die ms nur beim ersten ausführen der schleife ab. danach nicht mehr.

hier der code:
for(i = 1; i<frames; i++) {
setTimeout("gogogo()",1000); clearTimeout;
}

würde mich echt freuen, wenn einer eine lösung kennt.

vielen dank schonmal im vorraus.

ingmar
 
Bitte???

Moin moin Ingmar,

magst Du mir in etwa erzählen, was Du da vor hattest? Ich Tippe mal, Du willst diese Funktion x-mal aufrufen, gelle?
Also, erster Fehler ist der Syntax. Wenn Du clearTimeout benutzen möchtest, dann mußt Du es wie folgt gestallten.

test = window.setTimeout("go()",1000);
window.clearTimeout(test);

Aber, warum brichst Du den Timeout überhaupt gleich wieder ab??? So kann es doch auch nicht klappen, lass mal das clerTimeout weg und schreibe nur

window.setTimeout("gogogo()",1000);

dann sollte die Funktion "frames"-mal aufgerufen werden.
Ciaoi

Marko
 
Re: Bitte???

hi marko!

danke für die hilfe. es geht trotzem nicht.

das mit dem clearTimeout hatte ich eingebaut als ich am verzweifeln war, hat aber nix geändert.

jedenfalls hab ich jetzt folgendes:
for(i = 1; i<frames; i++) {
window.setTimeout("gogogo()",1000);
}

macht aber keinen unterschied. (leider) - beim ersten ausführen der schleife wartet setTimeout 1sec aber bei den restlichen malen nicht. das ist auch das problem.
die funktion gogogo() soll jedesmal um 1sec verzögert aufgerufen werden, was allerdings nicht der fall ist. eigentlich müsste setTimeout doch in einer schleife arbeiten oder..?

ingmar
 
sorry ...

Moin moin Ingmar,

ne, sorry, ist ja auch tüddelich, kann doch auch gar nicht klappen, da er nicht die Schleife im Sek. Takt abarbeitet, er haut die Schleife in ein paar milisekunden durch und bekommt jedesmal den Befehl, in einer Sek die Funktion gogogo() aufzurufen. Ich würde es etwas anders machen.
Deine Function gogogo() müßte etwa wie folgt aussehen.

function gogogo(){
a=0;
go()
}

function go(){
document.write("Wat weiß ich, was Du hier machst.");
a++
if (a<frames)
window.setTimeout(go(),1000);
}


Da könntest Du auch noch etwas spielen, evtl klappt auch folgendes.

Aufruf mit "gogogo(0)"

function gogogo(a){
document.write("Wat weiß ich, was Du hier machst.");
a++
if (a<frames)
window.setTimeout(gogogo(a),1000);
}

Mußt Du mal schauen, wichtig ist, das er den Befehl setTimeout auch erst nach der Sekunde bekommt.
Viel spaß beim testen <smile>

Marko
 
Zurück
Oben