Markus: Javascript if Abfrage funktioniert nicht.

Hi, kann mir jemand sagen, wo mein Fehler in der If Abfrage in der Funktion "canvas_aus()" ist? Es wird immer der erste Teil der If Else Anweisung ausgefeführt, obwohl ich per "Allert" sehe, dass er in die Else Anweisung springen müsste.

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8"/>
  <script type="application/javascript">
    function draw() {
      var anaus;
      var canvas = document.getElementById("canvas");
      var button1 = document.getElementById("button1");
      
      var canvas2 = document.getElementById("canvas2");
      var button2 = document.getElementById("button2");
      
      if(canvas.getContext){
        var ctx = canvas.getContext("2d");

        ctx.fillStyle = "rgb(200,0,0)";
        ctx.fillRect(10, 10, 55, 50);

        ctx.fillStyle = "rgba(0, 0, 200, 0.5)";
        ctx.fillRect(30, 30, 55, 50);
      }
      if(canvas2.getContext){
        var ctx2 = canvas2.getContext("2d");

        ctx2.fillStyle = "rgb(200,0,0)";
        ctx2.fillRect(10, 10, 55, 50);

        ctx2.fillStyle = "rgba(0, 0, 200, 0.5)";
        ctx2.fillRect(30, 30, 55, 50);
        
      }
      
    }
    
    function canvas_aus() {
        anaus = canvas.style.visibility;
        alert("vor if else wert ist = "+anaus);
        if(anaus = 'visible'){
        alert("in if wenn wert von anaus visible ist");
        canvas.style.visibility='hidden';
        document.getElementById("button1").childNodes[0].nodeValue="Canvas 1 einschalten";
       
        } else
        {
        
        alert("in if wenn wert von anaus hidden ist");
        canvas.style.visibility='visible';
        document.getElementById("button1").childNodes[0].nodeValue="Canvas 1 ausschalten";
       
        }
    }
    function canvas2_aus() {
        canvas2.style.visibility='hidden';
        document.getElementById("button2").childNodes[0].nodeValue="Canvas 2 einschalten";
    }
  </script>
 </head>
 <body onload="draw();">
 <button id ="button1" onclick="canvas_aus()">Canvas 1 ausschalten</button>
 <button id ="button2" onclick="canvas2_aus()">Canvas 2 ausschalten</button>
   <canvas id="canvas" width="300" height="300" style="visibility:visible;"></canvas>
   <canvas id="canvas2" width="300" height="300" style="visibility:visible;"></canvas>
 </body>
</html>

akzeptierte Antworten

  1. Hi,

        if(anaus = 'visible'){
    

    Wenn Du vergleichen willst, solltest Du nicht zuweisen ...

    cu,
    Andreas a/k/a MudGuard

    1. Wenn Du vergleichen willst, solltest Du nicht zuweisen ...

      Und was muss ich genau machen, sorry, wie muß ich den Code in der Klammer ändern, damit er funktioniert? Ich glaub ich sehe den Wald vor lauter Bäumen gerade nicht.

      1. Wenn Du vergleichen willst, solltest Du nicht zuweisen ...

        Und was muss ich genau machen, sorry, wie muß ich den Code in der Klammer ändern, damit er funktioniert? Ich glaub ich sehe den Wald vor lauter Bäumen gerade nicht.

        danke, jetzt funktioniert es.

  2. @@Markus

    kann mir jemand sagen, wo mein Fehler in der If Abfrage in der Funktion "canvas_aus()" ist?

    Du meinst hier? if(anaus = 'visible')

    Der Variablen anaus wird der Wert 'visible' zugewiesen. Da dieser nicht falsy ist, ist die Bedingung immer true.

    Vermutlich willst du nicht zuweisen, sondern vergleichen?

    LLAP 🖖

    --
    Ist diese Antwort anstößig? Dann könnte sie nützlich sein.
    1. Vermutlich willst du nicht zuweisen, sondern vergleichen?

      Danke, man was für ein Anfängerfehler, ich sollte es aus PHP ja eigendlich wissen g

      1. Hallo Markus,

        … man was für ein Anfängerfehler, …

        ein Klassiker, den muss jeder mal machen.

        Gruß Jürgen

        1. @@JürgenB

          … man was für ein Anfängerfehler, …

          ein Klassiker, den muss jeder mal machen.

          Und die Fortgeschrittenen machen dann den Fehler, == und === zu verwechseln.

          LLAP 🖖

          --
          Ist diese Antwort anstößig? Dann könnte sie nützlich sein.