Martin Baier: Zählerschleife mit Zeitverzögerung

Hallo, wer kann mir helfen:

Ich benötige eine Zählerschleife in der eine Zeitverzögerung eingebaut ist,
d.h. die Variable X soll im abstand von 1 sec. erhöht werden.

function Zähle()
  {
   for(var i = 1; i <= 10; i++)
        X=1;
        X = X + 1;
        document.Layer1.left=X;
  }

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

gruß Martin

  1. X = 1;
    function Zaehle()
     {
      X++;
      document.Layer1.left = X;
      window.setTimeout("Zaehle()",1000);
     }
    window.setTimeout("Zaehle()",1000);

    Gruß
    Norbert

  2. Hi!

    function Zähle()
      {
       for(var i = 1; i <= 10; i++)
            X=1;
            X = X + 1;
            document.Layer1.left=X;
      }

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

    Huch, was soll das denn werden? ;-)
    Erstmal zu Deiner Syntax: wahrscheinlich sollen die drei Anweisungen in die Schleife - dann müssen sie aber auch von einem Anweisungsblock (sprich: geschweiften Klammern) umschlossen werden.
    Und warum setzt Du X zehnmal auf 1?
    Und in der letzten Zeile wird auch noch eine Funktion angegeben, die gar nicht existiert.
    Versuch es mal so:

    var x=0; //Variable initialisieren

    function erhoehe()
    {
      //Variable erhöhen und anwenden
      x++;
      document.Layer1.left=x;
      //Funktion ruft sich selbst verzögert wieder auf:
      window.setTimeout("erhoehe()", 1000);
    }

    //Funktion anstoßen
    erhoehe();

    VG Simon

  3. Hallo!

    Ich benötige eine Zählerschleife in der eine Zeitverzögerung eingebaut ist,
    d.h. die Variable X soll im abstand von 1 sec. erhöht werden.

    function Zähle()
      {
       for(var i = 1; i <= 10; i++)
            X=1;
            X = X + 1;
            document.Layer1.left=X;
      }

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

    var x = 1;
    var x_ende = 240;

    function zaehle()
    {
       x++;
       document.Layer1.left=x;
       if(x>=x_ende)
         {
            clearTimeout(timeout_id);
         }
    }

    timeout_id = setTimeout("zaehle", 1000)

    MfG, André Laugks

    1. ReHallo!

      timeout_id = setTimeout("zaehle", 1000)

      timeout_id = setTimeout("zaehle()", 1000);

      MfG, André Laugks

    2. Hi!

      var x = 1;
      var x_ende = 240;

      function zaehle()
      {
         x++;
         document.Layer1.left=x;
         if(x>=x_ende)
           {
              clearTimeout(timeout_id);
           }
      }

      timeout_id = setTimeout("zaehle", 1000)

      Dann musst Du hier aber auch jeweils setInterval und clearInterval benutzen, sonst wird es ja nur einmal aufgerufen.

      VG Simon

      1. Hallo!

        Dann musst Du hier aber auch jeweils setInterval und clearInterval benutzen, sonst wird es ja nur einmal aufgerufen.

        Upps, klar Du hast recht, mein Fehler. setTimeout ruft die Funktion ja nur einmal auf. clearTimeout ist auch falsch.

        Um es jetzt noch ganz richtig zu machen, sollte setInterval() in einer Funktion aufgerufen werden, wenn die Seite vollständig geladen ist. Wenn der Layer "Layer1" noch nicht da ist und die Funktion "zaehle()" will den Layer bewegen, kommt es zu einer Fehlermeldung("Objekt erwartet" oder so).

        MfG, André Laugks