Danke für deine Hilfe! Irgendwie klappt es aber nicht. Ich habe jede mögliche Schreibweise ausprobiert und alle bringen unterschiedliche Fehlermeldungen. Ich verstehe es nicht.
Jetzt bist du im Objektorientierten Modus und du hast dir auch gleich ein etwas komplizierter Problem ausgesucht, insofern ist ein Nachmittag sogar eher wenig.
function Fader(){
this.opacity = 1;
this.speed = 0.01;
this.stopOpacity = null;
this.id = null;
this.isFadeOut = false;
this.errorMsg = "Ein Fehler";this.fadeOut = function (id, stopOpacity) {
this.isFadeOut = true;
this.id = document.getElementById(id);
this.opacity = 1;
this.stopOpacity = stopOpacity;var newFadeOutOpacity = window.setInterval("Fader.newFadeOut()", 20);
Das Problem eins ist Fader.newFadeOut() existiert nicht, sondern this.newFadeOut() wobei this der Variabel entspricht der du das Objekt mit new zuweist.
Allerdings geht, wie du schon gemerkt hast this.newFadeOut() auch nicht, da in window.setInterval("Fader.newFadeOut()", 20); der String in 20 ms quasi mit new Function() erzeugt und aufgerufen wird, nur bist du dann im window Kontext und this ist gleich window da aber window.newFadeOut() nicht existiert schlägt der Aufruf fehl.
Die Lösung ist eine lokale Variabel und ein anonyme Funktion. In der anonymen Funktion steht die lokale Variabel auch beim verspätetem Aufruf zu Verfügung und zeigt dann auf this und es können die Funktionen des Objektes aufgerufen werden.
Struppi.
Javascript ist toll (Perl auch!)