ddimonn8080
@ddimonn8080

Как сделать простой счётчик?

Здравствуйте.
есть функция
function foo(){
    var start = 1;
    var stop = 10;

    if(....) {
       clearTimeout(interval );
 }
}

Каждую секунду она запускается
var interval = setInterval(foo, 1000 );

Подскажите как увеличивать start каждый раз на единицу и при этом чтобы она стартовала с 1цы в самом начале?

Спасибо.
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 2
abyrkov
@abyrkov
JavaScripter
Замыкания.
function getCounter() {
  var start = 1;
  var stop = 10;
  return function() {
  start++;
  if(start != stop) setTimeout(arguments.callee, 1000);
}
setTimeout(getCounter(), 1000);
Ответ написан
@Nwton
https://jsfiddle.net/weoopfyo/1/
setTimer(1, 10);

function setTimer(c, f){
	document.querySelector('#timer').innerHTML = c;
  if(c < f)setTimeout(setTimer, 1000, c + 1, f);
}

А еще лучше так:
setTimer(1, 10,  function(){alert('finished')});

function setTimer(c, f, callback){
	document.querySelector('#timer').innerHTML = c;
  if(c < f)setTimeout(setTimer, 1000, c + 1, f, callback);
  else if(callback)callback();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы