tobi19: 2 Bilder im Wechsel mit onclick

Ich versuche gerade 2 Bilder im dauerhaften Wechsel mit onclick anzeigen zu lassen. Mit onmouseover/onmouseout und einmal onclick hat es noch funktioniert. Jedoch habe ich jetzt ein paar Probleme (es ist mein erster Versuch mit Java...)

Alles mit _X_ markierte ist eine Frage.

------------------------------------------------------------

JavaScript:

------------------------------------------------------------

bild1 = new Image();
 bild1.src = "bild1.jpg";
 bild2 = new Image();
 bild2.src = "bild2.jpg";
 var n = 1;

function bildwechsel (zahl, _n_); {
 if (n != 1) {
  document.images[zahl].src = bild_n_.src;
  n--; }
 else {
  document.images[zahl].src = bild_n_.src;
  n++; }
 }

------------------------------------------------------------

Inhalt der HTML Datei:
------------------------------------------------------------

<img src="bild1.jpg" onclick="bildwechsel(0, _n_)">

------------------------------------------------------------

Und zwar würde ich gerne mit der definierten Variablen "n" 2 Bilder im Zyklus anzeigen. Dazu definiere ich n = 1 und addiere bzw. subtrahiere nach jedem Klick 1. Jedoch weiß ich nicht, wie ich:
1. die Zahl "n" an bild_n_.src anhängen kann, sodass dort entweder bild1 oder bild2 steht
2. die Zahl "n" als Objekt in die HTML Datei übernehmen kann, der IE sagt immer: 'n' ist nicht definiert.

Wenn ich das "n" ganz weglasse, also nur als if-Abfrage lasse, und einfach bild1.src und bild2.src hinschreibe, kommt die Fehlermeldung, dass ein Objekt in der HTML Datei erwartet wird... danke für die Hilfe.

  1. Hi,

    Jedoch weiß ich nicht, wie ich:

    1. die Zahl "n" an bild_n_.src anhängen kann, sodass dort entweder bild1 oder bild2 steht

    Ganz simpel: Nutze keine durchnummerierten Variablennamen, sondern ein Array.

    1. die Zahl "n" als Objekt in die HTML Datei übernehmen kann, der IE sagt immer: 'n' ist nicht definiert.

    Du meinst an dieser Stelle?

    <img src="bild1.jpg" onclick="bildwechsel(0, _n_)">

    Da brauchst du das Ding doch gar nicht, wenn du n als Variable im JavaScript-Code anlegst.

    Wenn ich das "n" ganz weglasse, also nur als if-Abfrage lasse, und einfach bild1.src und bild2.src hinschreibe, kommt die Fehlermeldung, dass ein Objekt in der HTML Datei erwartet wird...

    Definiere dir n als Variable am Anfang deines JavaScript-Code - und sorge dann dafuer, dass deren Wert bei jedem Bildwechsel ebenfalls gewechselt wird.

    MfG ChrisB

    1. Hi,

      Jedoch weiß ich nicht, wie ich:

      1. die Zahl "n" an bild_n_.src anhängen kann, sodass dort entweder bild1 oder bild2 steht

      Ganz simpel: Nutze keine durchnummerierten Variablennamen, sondern ein Array.

      1. die Zahl "n" als Objekt in die HTML Datei übernehmen kann, der IE sagt immer: 'n' ist nicht definiert.

      Du meinst an dieser Stelle?

      <img src="bild1.jpg" onclick="bildwechsel(0, _n_)">

      Da brauchst du das Ding doch gar nicht, wenn du n als Variable im JavaScript-Code anlegst.

      Wenn ich das "n" ganz weglasse, also nur als if-Abfrage lasse, und einfach bild1.src und bild2.src hinschreibe, kommt die Fehlermeldung, dass ein Objekt in der HTML Datei erwartet wird...

      Definiere dir n als Variable am Anfang deines JavaScript-Code - und sorge dann dafuer, dass deren Wert bei jedem Bildwechsel ebenfalls gewechselt wird.

      MfG ChrisB

      Hab ich alles versucht, es funktioniert trotzdem nicht.
      Fehler: Objekt erwartet
      Kann da jemand mit einer konkreten lösung helfen?

      1. Hi,

        bitte zitiere auch du sinnvoll, und nicht einfach alles.

        Hab ich alles versucht, es funktioniert trotzdem nicht.
        Fehler: Objekt erwartet
        Kann da jemand mit einer konkreten lösung helfen?

        </hilfe/charta.htm#tipps-fuer-fragende>

        MfG ChrisB

    2. Ganz simpel: Nutze keine durchnummerierten Variablennamen, sondern ein Array.

      Wie funktioniert das mit dem Array?

      <img src="bild1.jpg" onclick="bildwechsel(0, _n_)">
      Da brauchst du das Ding doch gar nicht, wenn du n als Variable im JavaScript-Code anlegst.

      Hab ich doch, aber der IE sagt dort fehlt ein Objekt?

      Definiere dir n als Variable am Anfang deines JavaScript-Code - und sorge dann dafuer, dass deren Wert bei jedem Bildwechsel ebenfalls gewechselt wird.

      Wie? Hab ich das nicht schon?

      1. Hi,

        Ganz simpel: Nutze keine durchnummerierten Variablennamen, sondern ein Array.
        Wie funktioniert das mit dem Array?

        Stelle bitte konkrete Fragen, wenn du konkrete Verstaendnisprobleme hast.

        <img src="bild1.jpg" onclick="bildwechsel(0, _n_)">
        Da brauchst du das Ding doch gar nicht, wenn du n als Variable im JavaScript-Code anlegst.
        Hab ich doch, aber der IE sagt dort fehlt ein Objekt?

        Wozu willst du n hier als Funktionsparameter uebergeben?

        MfG ChrisB

        1. Wozu willst du n hier als Funktionsparameter uebergeben?

          Das weiß ich ja auch nicht. Aber der IE ist mit bildwechsel(0) nicht einverstanden.

          Ganz simpel: Nutze keine durchnummerierten Variablennamen, sondern ein Array.
          Wie funktioniert das mit dem Array?
          Stelle bitte konkrete Fragen, wenn du konkrete Verstaendnisprobleme hast.

          Ich kann die Bilder auch mit Arrays nummerieren. Aber was nutzt mir das genau?

          1. Hi,

            Wozu willst du n hier als Funktionsparameter uebergeben?
            Das weiß ich ja auch nicht. Aber der IE ist mit bildwechsel(0) nicht einverstanden.

            Natuerlich ist er das dann nicht, wenn du die Funktion weiterhin so definiert hast, dass sie zwei Parameter erwartet.

            Ich kann die Bilder auch mit Arrays nummerieren. Aber was nutzt mir das genau?

            Dann kannst du ganz einfach durch Angabe des nummerischen Index auf die Arryelemente zugreifen - und stehst damit nicht vor der Problematik, irgendwie eine Nummer in einen Variablennamen hineinpfriemeln zu muessen.

            MfG ChrisB

            1. Das weiß ich ja auch nicht. Aber der IE ist mit bildwechsel(0) nicht einverstanden.
              Natuerlich ist er das dann nicht, wenn du die Funktion weiterhin so definiert hast, dass sie zwei Parameter erwartet.

              Hab ich nicht.

              Ich kann die Bilder auch mit Arrays nummerieren. Aber was nutzt mir das genau?
              Dann kannst du ganz einfach durch Angabe des nummerischen Index auf die Arryelemente zugreifen - und stehst damit nicht vor der Problematik, irgendwie eine Nummer in einen Variablennamen hineinpfriemeln zu muessen.

              Ist mir ehrlich gesagt schwer zu verstehen, du erklärst was ich benutzen soll, aber nicht wie.

              Script:

              var bild = new Array();
               bild[0] = new Image();
               bild[0].src = "bild1.jpg";
               bild[1] = new Image();
               bild[1].src = "bild2.jpg";
               var n = 0;

              function bildwechsel (zahl); {
               if (n == 1) {
                document.images[zahl].src = bild[0].src;
                n--; }
               else {
                document.images[zahl].src = bild[1].src;
                n++; }
               }

              HTML:

              <img src="cyxflash1.jpg" onclick="bildwechsel(0)">

              Ich find den Fehler nicht. Sorry.

              1. Hi,

                function bildwechsel (zahl); {

                Moechtest du die Definition der Funktion wirklich vor der geschweiften Klammer schon abschliessen?

                MfG ChrisB

                1. function bildwechsel (zahl); {
                  Moechtest du die Definition der Funktion wirklich vor der geschweiften Klammer schon abschliessen?

                  Oha, danke, sag das doch gleich :)
                  Jetzt klappts. Super.