Function ist nicht definiert

Sasser

Erfahrenes Mitglied
Hallo!

Ich habe das folgende Script gebaut, um eine Art Newsticker mit Fader zu erstellen. Die News werden alle paar Sekunden geändert, aber jedoch wir die Transparent nicht geändert.

Ich erhalte immer den Fehler: fadedomain ist not definied, obwohl diese Funktion vorhanden ist!

Code:
<div id="domains"></div>

<script type="text/javascript">

var domains = new Array();
domains[0] = 'test 1';
domains[1] = 'test 2';
domains[2] = 'test 3';

var i = 0;
function fadedomains() {
	var opactity = 0;
	function fadedomain() {
		document.getElementById('domains').style.filter = 'Alpha(opacity=' + opactity * 10 + ')';
		if (opactity < 10) {
			window.setTimeout('fadedomain();', 250);
		}
		opactity ++;
	}
	if (( i + 1 ) > domains.length) {
		i = 0;
	}
	document.getElementById('domains').innerHTML = domains[i];
	fadedomain();
	i ++;
	window.setTimeout('fadedomains();', 3000);
}
fadedomains ();
</script>
 
1. Es ist nicht die beste Idee zwei Funktionen mit fast identischem Namen zu benutzen.
2. Ist die inner "fadedomain" (ohne s) von außen eben nicht bekannt. Wenn nach 250ms der Browser die Funktion im window scope sucht (fadedomain ist nur innerhalb vom fadedomains scope bekannt).

Das einfachste workaround

Javascript:
if (opactity < 10) {
    window.setTimeout(function() {
        fadedomain();
    }, 250);
}
 
Zurück