Ulf Haberbosch: Rollover mit Bildern aus 2dimensionalem Array

Hallo zusammen,

untenstehender Code erzeugt den Fehler "'bildarray.1.0.src' ist kein Objekt".

Unverständlich ist mir dabei, daß die Funktion anderesBild läuft, während die onMouseOut-Funktion altesBild die Fehlermeldung erzeugt. Der vollständige Code ist unter www.jufa-botnang.de/test/test.html zu finden.

Das Array bildarray[][], auf das hier zugegriffen wird, enthällt die richtigen Werte - daran liegt es nicht. Mir scheint, der Browser will auf "bildarray.1.0.src" statt "bildarray[1][0].src" zugreifen, aber warum nur?

Hat jemand eine Idee?

Dank & Gruß Ulf

Codeausschnitt:

function anderesBild(name, pos){
  if (document.images){
     eval("document." + name + ".src=bildarray[0][" + pos + "].src");
     }
  }

function altesBild(name, pos){
  if (document.images){
     eval("document." + name + ".src=bildarray[1][" + pos + "].src");
     }
  }

  1. Hallo,

    Das Array bildarray[][], auf das hier zugegriffen wird, enthällt die richtigen Werte - daran liegt es nicht. Mir scheint, der Browser will auf "bildarray.1.0.src" statt "bildarray[1][0].src" zugreifen, aber warum nur?

    Hat jemand eine Idee?

    function anderesBild(name, pos){
      if (document.images){
         eval("document." + name + ".src=bildarray[0][" + pos + "].src");

    Codeausschnitt:

    function anderesBild(name, pos){
      if (document.images){
         eval("document." + name + ".src=bildarray[0][" + pos + "].src");
         }
      }

    Probiere es mal ohne eval():
    document.images[name].src=bildarray[0][pos].src

    MfG, Thomas

    1. Probiere es mal ohne eval():
      document.images[name].src=bildarray[0][pos].src

      MfG, Thomas

      Hallo Thomas,

      mit Deinem Vorschlag bekomme ich: "bildarray[1][...].src ist kein Objekt" Immerhin sind die Klammern jetzt da, aber... Trotzdem Danke.

      Gruß Ulf

      1. Hallo,

        mit Deinem Vorschlag bekomme ich: "bildarray[1][...].src ist kein Objekt" Immerhin sind die Klammern jetzt da, aber... Trotzdem Danke.

        Wenn die Arrays nebst Bildobjekten korrekt instanziiert sind, sollte das wie beschrieben klappen.
        Teste das mal auf diese Weise aus:

        <script type="text/javascript">

        var x=new Array(2);

        x[0]=new Array(2);
        x[0][0]=new Image();
        x[0][0].src="bild00.gif";
        x[0][1]=new Image();
        x[0][1].src="bild01.gif";

        x[1]=new Array(2);
        x[1][0]=new Image();
        x[1][0].src="bild10.gif";
        x[1][1]=new Image();
        x[1][1].src="bild11.gif";

        alert(x[1][0].src);

        </script>

        MfG, Thomas

        1. Hallo Thomas,

          Wenn die Arrays nebst Bildobjekten korrekt instanziiert sind, sollte das wie beschrieben klappen.

          Stimmt - es muß am Array liegen. Ich hatte es anders erzeugt (durch eine Funktion, in der offenbar der Fehler liegt) und mir auch anschließend mal testweise über alert(); ausgeben lassen, da schien es in Ordnung zu sein - war's aber offensichtlich nicht...

          Danke
          Gruß Ulf