Varialble in setTimeout
Thomas
- javascript
0 David Tibbe0 Thomas
Hallo!
Habe folgendes Problem:
---> funktionniert problemlos:
function Aneupos() {
if(ebMsch130.x < 230)return false;
ebMsch130.gehNach(ebMsch130.x-2,ebMsch130.y-3);
setTimeout('Aneupos()',10);
}
Jetzt will ich den EbenenNamen ebMsch130 als Varialbe oben reinschreiben:
--> Funktionniert ebenfalls
function Bneupos(ebene) {
if(ebene.x < 230)return false;
ebene.gehNach(ebene.x-2,ebene.y-3);
setTimeout('Bneupos(ebMsch130)',10);
}
Will ich aber nun auch ebMsch130 im SetTimeout durch die Varialbe ebene ersetzten, so gehts nicht mehr... es nimmt nicht den Wert der Variabel sondern sucht nach dem Namen ebene...
Muss ein einfacher Syntaxfehler sein, dem ich nun schon Stunden geopfert habe!!!
--> geht nicht mehr!
function Cneupos(ebene) {
if(ebene.x < 230)return false;
ebene.gehNach(ebene.x-2,ebene.y-3);
setTimeout('Cneupos(ebene)',10);
}
Wer hilft mir!
Hallo Thomas,
Muss ein einfacher Syntaxfehler sein, dem ich nun schon Stunden geopfert habe.
So mag es sein. Leider hast du deine Zeit nicht in SelfHTML invensiert, dort steht doch der Hinweis auf des Rätsels Lösung, siehe http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout.
Grüße
David
Hallo David!
Besten Dank für Deine Antwort!
Leider scheine ich schwer von Begriff zu sein!
Bei Deinem angegebenen Link steht:
«Eine Übergabe der Werte mittels Zeichenkettenverknüpfung ist jedoch jederzeit möglich.»
Das habe ich nun versucht:
function Cneupos(ebene) {
if(ebene.x < 230)return false;
ebene.gehNach(ebene.x-2,ebene.y-3);
setTimeout('Cneupos('+ebene+')',10);
}
Ich unterbreche vor dem " den String gebe den Variablennamen ein und hänge den Rest an. Wird aber leider nicht gefressen! Die innere Klammer von SetTimeout frisst einfach keine Variablen!
....?
Gruss Thomas
Hallo Thomas,
Muss ein einfacher Syntaxfehler sein, dem ich nun schon Stunden geopfert habe.
So mag es sein. Leider hast du deine Zeit nicht in SelfHTML invensiert, dort steht doch der Hinweis auf des Rätsels Lösung, siehe http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout.Grüße
David
Hallo
Besten Dank für Deine Antwort!
Kein Problem.
Wird aber leider nicht gefressen!
Was sagt dir denn dein Browser? Sicherlich spuckt er eine ordentliche Fehlermeldung in seiner JS-Konsole aus.
Die innere Klammer von SetTimeout frisst einfach keine Variablen!
Das muss ein Fehler bei dir sein. Ich testete bei mir folgendes:
<html>
<script type="text/javascript">
function bla(o) {
alert('juppee ' + o);
o++;
window.setTimeout('bla('+o+')', 1000);
}
</script>
<body onload="bla(0)">
</body>
</html>
In allen getesteten Browsern (Opera 7.2, Firebird 0.6) und auch im IE 6 gab es keine Probleme, die alerts wurden angezeigt, jeweils mit inkrementierter Zahl.
Grüße
David