Peter: Bild wechseln

Moin!

Ich möchte ein Bild alle 1,5 sekunden mit javascript wechseln. Mit meinem Code wird es allerdings nur EIN mal gewechselt. Wisst ihr warum?

Hier der Code:

<html>
<head>
  <title>JS-Test</title>
</head>
<body>
  <img src="icon1.jpg">
  <script type="text/javascript">
    <!--
      function change()
      {
        if (document.images[0].src = "icon1.jpg")
        {
          document.images[0].src = "icon2.jpg"
        }
        else
        {
          document.images[0].src = "icon1.jpg"
        }
      }
      setInterval("change()", 1000);
    //->
  </script>
</body>
</html>

danke schon mal für eure Hilfe
Peter

  1. hi,

    if (document.images[0].src = "icon1.jpg")

    du verwendest hier einen zuweisungs-operator.
    das ergebnis dieser zuweisung ist nie false, also geht er auch immer in diese zweig der abfrage.

    du möchtest wahrscheinlich einen _vergleich_ machen statt einer zuweisung - der operator hierfür heisst aber ==.

    gruss,
    wahsaga

    1. Das ganze funktioniert immer noch nicht.

      Hier der geänderte Quelltext:

      <html>
      <head>
        <title>JS-Test</title>
      </head>
      <body>
        <img src="icon1.jpg">
        <script type="text/javascript">
          <!--
            function change()
            {
              if (document.images[0].src == "icon1.jpg")
              {
                document.images[0].src = "icon2.jpg";
              }
              else
              {
                document.images[0].src = "icon1.jpg";
              }
            }
            setInterval("change()", 1500);
          //->
        </script>
      </body>
      </html>

      1. Hi Leute!

        Sicherheitsvariante schaut zwar nicht so schön aus, funktioniert jedoch meistens!

        <html>
        <head>
          <title>JS-Test</title>
        </head>
        <body>
          <img src="icon1.jpg">
          <script type="text/javascript">
              var lFlag = true;

        window.setInterval("change()", 2000);
              function change()
              {
                if (lFlag)
                {
                  document.images[0].src = "icon2.jpg";
                  lFlag = false;
                }
                else
                {
                  document.images[0].src = "icon1.jpg";
                  lFlag = true;
                }
              }

        </script>
        </body>
        </html>

        LG wanderer

        1. Das Bild wird nur EIN MAL geändert.
          Hier noch mal der Code:

          <html>
          <head>
            <title>JS-Test</title>
          </head>
          <body>
            <img src="icon1.jpg">
            <script type="text/javascript">
              <!--
                var Bool = true;
                function change()
                {
                  if (Bool = true)
                  {
                    document.images[0].src = "icon2.jpg";
                    Bool = false;
                  }
                  else
                  {
                    document.images[0].src = "icon1.jpg";
                    Bool = true;
                  }
                }
                setInterval("change()", 1500);
              //->
            </script>
          </body>
          </html>

          Isch kapier dat einfach nicht

          1. Hi,

            if (Bool = true)

            und hier hast Du wieder deine Zuweisung anstatt eines Vergleichs notiert.

            es sollte freilich auch ganz ohne Abfrage gehen.
            Wenn Du deine icons z.b. "icon1.jpg" und "icon0.jpg" benennst:

            var nr =0
            function change()
            { nr = 1-nr; document.images[0].src = "icon" + nr + ".jpg"; }

            freundliche Grüße
            Ingo

            1. und hier hast Du wieder deine Zuweisung anstatt eines Vergleichs notiert.

              Argh! Ich hasse die JavaScript syntax. Habe in letzter Zeit nur Delphi programiert, da wird mit "="  verglichen.

              funktioniert jetzt, danke