Clemens: clearInterval()

Hallo

Ich habe ein Problem mit claerinterval(). Ich befolge bei meinem Beispiel genau die Anweisungen von Selfhtml, aber es funktioniert leider nicht. Hier mein Quelltext:

...

//Der Bildwechsel
function Bildwechsel()
 {
 i = i + 1;
 document.images[0].src = b[i];
 if(i == 5)
  {
  alert("Ende: "+i);
  window.clearInterval(aktiv);
  }
 }
//-->
</script>

...

Also der Bildwechsel funtioniert blendent.
Zur Kontrolle habe ich auch nochmal (in meiner Verzweiflung ;-) ) ein alert dazugeschrieben, um zu sehen, ob die If Anweisung funktioniert.
Funktioniert auch, aber die Funktion Bildwechsel() wird immer weiter ausgeführt. Ich weiß nicht warum. Könnte mir da bitte jemand mal helfen.

Danke im voraus
Clemens

  1. hi,

    window.clearInterval(aktiv);

    wo ist die stelle, an der du das zugehörige interval aktiv definierst?

    gruss,
    wahsaga

    1. hi,

      window.clearInterval(aktiv);
      wo ist die stelle, an der du das zugehörige interval aktiv definierst?

      Sorry hab ich vergessen.
      function Wahle()
       {
       if(document.getElementById("Diashow").value == "Diashow")
        {
        document.getElementById("Diashow").value = "stoppen";
        var aktiv = window.setInterval("Bildwechsel()",2000);
        }
        else
        {
        document.getElementById("Diashow").value = "Diashow";
        }
       }
      //-->
      </script>
      <button id="Diashow" onclick="Wahle()">Diashow</button>

      Funktioniert auch ohne Probleme, nur das clearInterval(); funktioniert halt einfach gar nicht

      Danke für die Antwort. Langsam bin echt am verzweifeln.

      1. hi,

        function Wahle()
         { ...
          var aktiv = window.setInterval("Bildwechsel()",2000);
         ... }
        Funktioniert auch ohne Probleme, nur das clearInterval(); funktioniert halt einfach gar nicht

        durch diese art der deklaration ist die variable nur lokal innerhalb der funktion Wahle() verfügbar.

        wenn du als jetzt ausserhalb der funktion mit clearInterval auf aktiv bezug zu nehmen versuchst, kann das nicht klappen, weil es aktiv dort gar nicht gibt.

        lies mal hier http://selfhtml.teamone.de/javascript/sprache/variablen.htm zum unterschied zwischen lokalen und globalen variablen in JS nach, dann weisst du auch, was du ändern musst, damit es funktioniert.

        gruss,
        wahsaga

        1. Danke

          Jetzt funktionierts. Lag wirklich an der lokalen Variable.
          Dass man an so einem dummen Fehler so lang rätseln kann ;-).

          Danke nochmal