[latex]Mae govannen![/latex]
Du hast _entschieden_ zu viele
document.getElementById("piclayer")im Code. Besser ist es, die Referenz auf dieses Objekt nur _ein_ Mal zu ermitteln und in einer Variablen abzulegen und danach nur noch mit dieser Referenz zu arbeiten.
Ich habe es jetzt in jeder Funktion einmal. Oder würde das auch funktionieren, wenn ich in der init-Funktion eine globale Variable anlege?
Auf keinen Fall. Dein Script sollte maximal eine neue Variable anlegen: picLayer. Hänge die Referenz einfach als Eigenschaft an dein Objekt.
var picLayer = {
picRef:
null,
init:
function () {
var mdlimg = document.getElementById("piclayer");
if(!mdlimg){
mdlimg = document.createElement("img");
mdlimg.id = "piclayer";
mdlimg.style.position = "absolute";
mdlimg.style.display = "none";
mdlimg.onclick = function () { picLayer.picRef.style.display = "none"; };
document.body.appendChild(mdlimg);
}
picLayer.picRef = mdlimg;
},
[...]
(ungetestet, nur zur Verdeutlichung)
Entsprechend dann diese Referenz im Code überall verwenden.
Was soll eigentlich do{test = "test";}while(loadPic.onload); bedeuten/-zwecken?
BTW: Du hast da noch ein paar globale Variablen im Code, entweder auch ans Objekt hängen oder mit var deklarieren, je nach Verwendungszweck
Stur lächeln und winken, Männer!
Kai
Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
in Richtung "Mess up the Web".(suit)
SelfHTML-Forum-Stylesheet