Melanie: Aufruf einer Funktion über setTimeout() Methode

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

  1. 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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. 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.

    1. 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

      1. 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.