molily: Bilder mit JavaScript laden - IE macht nix

Beitrag lesen

Hallo,

var newAction = document.createAttribute("onclick"); // on click the right picture is shown in big format

newAction.nodeValue = "stopShow(); choosePicture(" + i + ");"; // add attribute: onclick //"stopShow" stopt eine Diashow

1. Vergiss createAttribute und setAttributeNode völlig. Sie sind gänzlich unnötig. Attribute kannst du so setzen: element.attribut = "wert". Oder: element.setAttribute("attribut", "wert"). Wobei du die erste, kürzere Schreibweise bevorzugen kannst.

2. Ausnahme von dieser Regel: Event-Handler. Die setzt du, wenn du maximale Browser-Kompatibilität erreichen willst, immer gemäß diesem Schema:

element.onclick = funktion.

Also hier:

newPicture.pictureNumber = i;  
function clickHandler () {  
   stopShow();  
   choosePicture(this.pictureNumber);  
}  
newPicture.onclick = clickHandler;

Damit hier i im Handler den richtigen Wert hat, habe ich, wie du siehst, die Nummer als Eigenschaft am Elementknoten gespeichert. Im Handler kann man über this auf das img-Elementobjekt und diese Eigenschaft zugreifen.

var newId = document.createAttribute("id"); //set an ID for each Picture to give it more properties in the css-file
newId.nodeValue = "pic";
newPicture.setAttributeNode(newId);

Auch viel zu kompliziert, schreibe einfach:
newPicture.id = "pic";
(Aber wieso gibst du allen Bildern dieselbe ID? Sollte da vielleicht noch die Nummer in die ID?)

Mathias