Ich weiss jetzt nicht wo aktuell der Schuh drückt, sollte es immer noch der Intervall sein, hier mal was zum anfangen:
Ist eigentlich kein Anfang, ist schon alles was es braucht.
Was geht dort vor sich?
Es wird eine sogenannte anonyme funktion aufgerufen(eine ohne Namen).
Der Funktion werden die nötigen Argumente übergeben(bspw. intervall und Array).
Die Argumente sind überall im Geltungsbereich dieser Funktion sichtbar, so auch im callback des Intervalls den diese Funktion erzeugt(der von rd4eva erwähnte function-scope)
Innerhalb des Intervall-callbacks wird jetzt einfach immer das erste Array-Element entfernt und am Ende des Arrays angehangen.
Man braucht jetzt nur noch das erste Element abzufragen, das wars.
Im Prinzip ginge es noch einfacher:
Hier werden die Argumente dem Interval-callback direkt übergeben. Knackpunkt: IE macht das erst ab v10 mit
Code:
(function(interval, arr, prefix){
return (setInterval(function() {
arr.push(arr.shift());
$('#header').prop('className', prefix+arr[0]);
},interval));
})(8000, ['',1,2,3,4,5,6,7,8], 'headslider');
Ist eigentlich kein Anfang, ist schon alles was es braucht.
Was geht dort vor sich?
Es wird eine sogenannte anonyme funktion aufgerufen(eine ohne Namen).
Der Funktion werden die nötigen Argumente übergeben(bspw. intervall und Array).
Die Argumente sind überall im Geltungsbereich dieser Funktion sichtbar, so auch im callback des Intervalls den diese Funktion erzeugt(der von rd4eva erwähnte function-scope)
Innerhalb des Intervall-callbacks wird jetzt einfach immer das erste Array-Element entfernt und am Ende des Arrays angehangen.
Man braucht jetzt nur noch das erste Element abzufragen, das wars.
Im Prinzip ginge es noch einfacher:
Code:
setInterval(function(arr,prefix) {
arr.push(arr.shift());
$('#header').prop('className', prefix+arr[0]);
}, 2000,['',1,2,3,4,5,6,7,8],'headslider');
Hier werden die Argumente dem Interval-callback direkt übergeben. Knackpunkt: IE macht das erst ab v10 mit
Zuletzt bearbeitet: