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