Я пытаюсь запрограммировать некоторые кнопки, чтобы загораться и воспроизводить звук в порядке чисел из произвольного массива, который я сгенерировал, я меняю цвет на светлее, чем при замене оригинала, чтобы они загорелись. Некоторое время это работает, а затем некоторое время кнопки не возвращаются к исходному цвету, и я не уверен, почему, я не могу найти шаблон для него. Может ли кто-нибудь увидеть, что я делаю неправильно с моим кодом?Для цикла, не заканчивающегося исполнением только некоторое время
var turn = 19;
var b = 0;
function flash(button, light) {
button.addClass(light).delay(500).queue(function(){button.removeClass(light);})
}
function lightUp() {
switch (game[b]) {
case 1:
one.play();
flash($("#1"),"onelit");
break;
case 2:
two.play();
flash($("#2"),"twolit");
break;
case 3:
three.play();
flash($("#3"),"threelit");
break;
case 4:
four.play();
flash($("#4"),"fourlit");
break;
}
b++;
if (b < turn) {
setTimeout(lightUp, 2000);
}
}
ОК, так что, как представляется, он выполняет только одну функцию после задержки один раз, а затем во второй раз, когда каждая кнопка загорается, она не возвращается к исходному цвету. – Keli
Возможно, проблема заключается в том, что вы не вызываете 'next () ', как в [этом ответе] (http://stackoverflow.com/a/2510255/859640). Кстати, вам действительно следует избегать использования оператора switch. Вот [jsfiddle] (https://jsfiddle.net/31bb0azk/1/), который может дать вам некоторые идеи. –
Спасибо, что следующий() решил! Является ли оператор switch таким же неуклюжим? – Keli