Каждый раз, когда вы звоните nextImage
, zahl
устанавливается на 0.
Вы можете просто переместить его во внешнюю область:
function startTimer(){
setInterval(function(){ nextimage(); }, 3000);
var zahl = 0;
function nextimage() {
....
как и я здесь . Теперь он не обнуляется путем вызова nextImage()
, поэтому он действует как счетчик.
Также я думаю, что более элегантное решение - использовать массив цветов:
var colors = ["blue", "red", "green", "yellow"]
function nextimage() {
$("#skyid").attr("color", colors[zahl])
zahl = (zahl < colors.length - 1) ? ++zahl : 0
//zahl is incremented until its reached the end of the array
}