Javascript повторный запуск таймера

269
28 июня 2017, 01:27

Есть

<div class="counter"></div>

И есть javascript

var i = 10;
onTimer();
function onTimer() {
    $('.counter').html(i);
    i--;
    if (i < 0) {
        $('.counter').html('<a href="#" onclick="return onTimer();">Выслать код повторно</a>');
    }
    else {
        setTimeout(onTimer, 1000);
    }
    return false;
}

Не получается сделать так, что бы можно было по истечении времени запустить таймер заново. Вероятно сам по себе подход не верный. Подскажите что подправить? Пример

Answer 1

В коде вопроса не хватает восстановления значения счетчика.

var i = 10; 
onTimer(); 
 
function onTimer() { 
  $('.counter').html(i); 
  i--; 
  if (i < 0) { 
    $('.counter').html('<a href="#" onclick="return onTimer();">Выслать код повторно</a>'); 
    i = 10; // ЗДЕСЬ 
  } else { 
    setTimeout(onTimer, 200); // 200 вместо 1000, чтобы так долго не ждать 
  } 
  return false; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="counter"> 
 
</div>

https://jsfiddle.net/t6zjbf3a/1/

READ ALSO
На canvas остается круг после

На canvas остается круг после

Всем привет, я пытаюсь создать простую игру на canvasЯ с ним имею дело почти первый раз

274
VK.com redirect transition [требует правки]

VK.com redirect transition [требует правки]

i would like to know, is there any way to make transition before page redirect using JavaScripts on VK site ?

236