Alexander: rollover

Beitrag lesen

Hi,

hat jemand von euch irgendeine ahnung was ich da falsch gemacht habe?

Ja, einiges ;)
Überlege Dir mal, was das diese Zeile bedeutet: eval("img1.src=a["+nb+"].src");
--> (sinngemäß) Zeige für das Objekte "img1" den Inhalt des Array "a" (Stelle "nb") an.

Du ersetzt also ein Objekt "img1" durch ein Bild, dessen Pfad im Array a gespeichert ist. Dein Problem ist, daß Du unterschiedlichen Objekten die selben Namen gibst: <img name="img1"... kommt bei Dir zweimal vor. Dies darf nicht sein und macht auch keinen Sinn, da Du diese beiden Objekte (Grafiken) nicht mehr unterscheiden kannst.

Also:
1. Benenne die einzelnen Grafik-Objekte um, so dass keine Namen mehr doppelt vorkommen --> <img name="img1" SRC="img1.gif"  border=0> und <img name="img2" SRC="img1.gif"  border=0>
2. Erweitere die Funktion so, daß klar wird, welche Grafik geändert werden soll.
 function roll1(nb, nr)
   {
 var a;
 a= new Array();
 a[0]=new Image;
 a[0].src="img2.gif";
 a[1]=new Image;
 a[1].src="img1.gif";
 eval("img"+nr+".src=a["+nb+"].src");
  }
3. Ändere den Funktionsaufruf entsprechend ab:
Für Bild 1:
<a href="http://selfhtml.teamone.de" onmouseover="roll1(0,1)" onmouseout="roll1(1,1)">
Für Bild 2:
<a href="http://selfhtml.teamone.de" onmouseover="roll1(0,2)" onmouseout="roll1(1,2)">

Viel Erfolg...

Alex :)