javascript settimeout mit variable??

  • Moin
    folgendes script sollte eigentlich funktionieren.

    Code
    function changeimg(id)
    {
      var i;
      i = id;
      document.getElementById(id).style.backgroundImage = "url(images/navihover.jpg)";
      document.getElementById(id).style.fontSize = "13px";
      setTimeout("document.getElementById(id).style.backgroundImage = 'url(images/navi.jpg)'");
    }


    Es geht aber nicht.
    Meine JS Konsole spuckt aus, das in der zeile.

    Code
    setTimeout("document.getElementById(id).style.backgroundImage = 'url(images/navi.jpg)'");

    id nicht definiert ist.
    Aber wie definiere ich das denn, da es ja auch weiter oben funktioniert?
    Oder darf man bei settimeout generel keine variablen übergeben??

  • die id muss im HTML-Quellcode irgendwo vorkommen, z.B: in einem DIV

    Code
    <div id="box">
  • Nee - das ist nicht das Problem:

    1. heißt es "window.setTimeout"
    2. kannst du damit meines Wissens nur ein Funktion aufrufen und nicht wie in deinem Fall eine Funktion durchführen lassen,
    3. fehlt der Zeitparameter, wann das Timeout denn abläuft

    Probiere es mal so (ungetestet, Zeitparameter = 5000 Millisekunden = 5 Sekunden)

    G.a.d.M.

    Ronald

  • Es kann so nicht gehen, weil Javascript denkt, dass id Teil des Strings ist und keine Variable.

    Richtig muss es heißen: window.setTimeout("zurueck("+id+")", 5000);

    Hat auch etwas gedauert, bis ich drauf kam, ist aber eigentlich logisch.

    mfg
    Chrisch

  • Danke für die Hilfe - hab auch nach dieser Antowrt das Netz durchstöbert ;)