Aufruf einer Funktion über setTimeout() Methode
Melanie
- javascript
Hallöchen,
ich möchte aus einer Funktion nach dem Durchführen der setTimeout() Methode eine andere Funktion aufrufen und einen Parameter übergeben. Leider klappt das nicht.
Folgender Code:
function soNothing (myVariable)
{
alert(myVariable); //das funktioniert
setTimeout("doSomething(myVariable)", 2000); //hier erscheint die Fehlermeldung 'myVariable is not defined'
}
function doSomething (anotherVariable)
{
alert(anotherVariable);
}
Kann mir jemand sagen wie ich den Parameter richtig übergeben kann?
Danke im Voraus
Grüssle
Meli
hi,
setTimeout("doSomething(myVariable)", 2000); //hier erscheint die Fehlermeldung 'myVariable is not defined'
Kann mir jemand sagen wie ich den Parameter richtig übergeben kann?
übergebe nicht die variable, sondern ihren wert:
setTimeout("doSomething("+myVariable+")", 2000);
wenn das nicht gehen sollte (weil variable eine objektreferenz o.ä. enthält), dann mache die variable global, so dass sie auch für doSomething() verfügbar ist.
gruß,
wahsaga
function soNothing (myVariable)
{
alert(myVariable); //das funktioniert
setTimeout("doSomething(myVariable)", 2000); //hier erscheint die Fehlermeldung 'myVariable is not defined'
myVaribale ist lediglich innerhabl der Funktion bekannt, der Timeout läuft aber im window Kontext kennt diese Variabel also nicht.
Kann mir jemand sagen wie ich den Parameter richtig übergeben kann?
Kommt auf den Typ des Parameters an.
Struppi.
Hallo Struppi,
myVaribale ist lediglich innerhabl der Funktion bekannt, der Timeout läuft aber im window Kontext kennt diese Variabel also nicht.
Das erklärt natürlich einiges.
Kann mir jemand sagen wie ich den Parameter richtig übergeben kann?
Kommt auf den Typ des Parameters an.
Es handelt sich um einen String. Ist also kein Objekt.
Gruss
Meli
Kann mir jemand sagen wie ich den Parameter richtig übergeben kann?
Kommt auf den Typ des Parameters an.
Es handelt sich um einen String. Ist also kein Objekt.
Naja, dann musst du den Aufruf der Funktion so gestalten, wie du es machen würdest, wenn du sie mit dem Wert von myVariable aufrufen würdest. Also mit dem Wert und diesen innerhalb von anführungszeichen (wie in wahsaga's Beispiel)
Struppi.