Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   не дать параллельно запустить setInterval (https://javascript.ru/forum/events/61476-ne-dat-parallelno-zapustit-setinterval.html)

ababagalamaga 19.02.2016 23:52

не дать параллельно запустить setInterval
 
добрый день,

прошу помочь поставить маркер для блокирования повторного запуска setInterval. При первом нажатии на старт таймер работает корректно, при повторном - запускает параллельный отсчет, сбивается и ускоряется. Код приведен ниже.

Спасибо!

document.getElementById('start').onclick = function()
{
var i = 30;
var time;
var time_on = false;

function reduce_time()
{
document.getElementById('timer').innerHTML = '00:' + i--;
if(i < 0)
{
clearInterval(time);
alert('end of time!!');
time_on = false;
}
}
if(!time_on)
{
time = setInterval(reduce_time, 100);
time_on = true;
}
}

Decode 20.02.2016 00:10

ababagalamaga, переменную time_on сделай глобальной.

Vlasenko Fedor 20.02.2016 00:11

Рекурсивный setTimeout будет в помощь

ababagalamaga 20.02.2016 00:39

сделал глобальной
var time_on = false;

работает
Спасибо!!!:)


Часовой пояс GMT +3, время: 01:56.