Переполнение стека Javascript при запуске метода setTimeout + передача переменной

Я знаю, в чем проблема, с которой я столкнулся, мне просто трудно найти решение. Мне было интересно, сталкивался ли кто-нибудь с чем-то подобным и какое решение они реализовали.

У меня есть система списков незавершенных ремонтов, и я хочу, чтобы ремонтные работы с опозданием мигали черным и красным. Возможно, в этом списке есть несколько запоздалых ремонтов.

вот моя функция:

function setblink(id) {
   var elm = document.getElementById(id);
    if (elm.color == "red"){
        elm.color = "black";
    }
    else{
        elm.color = "red";
    }
    setTimeout(setblink(id),500);
}

У меня есть массив «id» для элементов, которые должны мигать, под названием repsToBlink.

Я получаю заданные интервалы мигания для каждого из этих ремонтов, выполняя следующий код, который помещает их в рекурсивный цикл.

for(var x in repsToBlink){
setTimeout(setblink(repsToBlink[x]),500);
}

Как я могу заставить этот код делать то же самое, не вызывая переполнения стека?

Спасибо!

0
задан techfoobar 16 January 2012 в 18:15
поделиться