Jean Pascal: Variable bei erneutem Funktionsaufruf nicht mehr verfügbar

Guten Abend,

ich habe nochmal ene Frage zu JS und zwar möchte ich gerne eine Foto-Gallerie dynamisch mit JS und DOM verändern. Dabei versuche ich am Ende einer Schleife eine Variable zu definieren (ohne var), um deren Wert beim erneuten Aufrufen der Funktion (durch onclick) wiederzuverwenden. Merkwürdigerweise wird die Variable aber nicht gespeichert. Warum? Ist es nicht so, dass ich sie wiederverwenden können sollte, wenn kein Reload der Seite stattgefunden hat?

Würd mich freuen, wenn mir jemand helfen könnte.

Grüße Jean

  1. Hellihello Jean,

    Ist es nicht so, dass ich sie wiederverwenden können sollte, wenn kein Reload der Seite stattgefunden hat?

    Jap, so ist es. Ein kleiner eingekürzter Codeschnipsel könnte die Diskussion abkürzen (;-).

    frankx

    1. Hallo Frank und alle anderen,

      OK, hier also die Code-Schnipsel. Ich hoffe sie sind nicht zu unueberischtlich.

      <script type="text/javascript">

      function swap(swap_ort){

      alert(swap_ort);

      var area = document.getElementById("start");
      var properties = area.getElementsByTagName("properties");
      var image = area.getElementsByTagName("img");

      if (swap_set == undefined){
          var swap_set = 1;
      }

      alert(swap_set);

      if (swap_set!=0){

      for (var i = 0; i < properties.length; i++) {

      var properties_ort = properties[i].getAttribute("ort");

      if (properties_ort == swap_ort){
                   alert("Ja, sie sind gleich!")
                   image[i].src = "/img/alsace.gif";
               }
          }
          swap_set = 0;
      }

      }

      </script>

      (...)

      <a href="#" title="Alsace" onclick="swap('alsace')">Alsace</a>

      (...)

      Das Ergebnis der ganzen Geschichte ist eben, dass er auch beim zweiten Klick in die Schleife reingeht, bzw. mir immernoch sagt, swap_set sei 1 obwohl ich es beim ersten Durchgang auf 0 setze. Warum nur?

      Alles andere funktioniert.

      Ich wuerde mich sehr ueber eure Unterstuetzung freuen.

      Gruesse Jean

      1. Problem behoben. Hatte die Variable in der Funktion initialisiert, was sie zu einer lokalen Variable machte.

        Gruss Jean