Java Script Problem

Hallo liebe Community,
ich hätte da eine wichtige Frage!:
Beim Laden meiner Website wird folgender JS-Code geladen:

         <script>
	               document.getElementById("hide").value = "a";
          </script>

Dabei ist “hide” ein der folgende Link, der bei Aufruf die Funktion hide(); auf ruft:
Der Link

      <a id="hide" onclick="hide();"><img src="spenden-arrow-up.png"></a>

Die aufgerufene Funktion:

	  function hide() {
	      var zustand = document.getElementById("hide").value;
          if (zustand = "a") {
	        zustand = "b";
	      }
	      else {
		      zustand = "a";
	      }
	      alert(zustand);
	  }

Jetzt Das Problem: Es wird immer nur “b” ausgegeben, statt dem erwarteten “b” “a” “b” “a”…
Woran liegt der Fehler bzw. was wäre eure Lösung für das Problem ?
Vielen Dank im Vorraus :slight_smile: :wink:

(zustand = „a“) ist immer true, da die Zuweisung immer erfolgreich ist. !haue
Für den Vergleich zweier Variablen benötigst du ==

Oh wie dumm ich bin :whata:
Funktioniert aber trotzdem nicht :frowning:
Hab das ganze anders ausprobiert, geht auch nicht :frowning:
Wo liegt der Fehler:

  <a id="hide" onclick="hide(1);"><img src="spenden-arrow-up.png"></a>

<script> function hide(zustand) { if (zustand == 1) { zustand = 2; } else { zustand = 1; } return zustand; alert(zustand); } </script>

Jetzt wird die Funktion immer mit dem Wert 1 aufgerufen, dieser ist schließlich fest reingeschrieben und ändert sich nicht (du überschreibst ja das onclick nicht).

Mach es doch einfach so:

var hidden = false; function hide() { if (hidden) { hidden = false; } else { hidden = true; } alert(zustand); return zustand; }

Das alert muss zudem vor return angegeben werden, denn return verlässt die Funktion und alles weitere wird nicht mehr ausgeführt.

Ok vielen Dank :slight_smile: :slight_smile: :slight_smile:
Vielleicht sollte ich mir doch schon mal ein bisschen was anlesen,
bevor ich einfach wild darauf los gehe :smiley: