Javascript Timing - PullRequest
       10

Javascript Timing

1 голос
/ 23 ноября 2008

Я пытаюсь создать обратный отсчет с помощью JavaScript. Я получил код из здесь и слегка его изменил.

<script type="text/javascript">
var c=10, t;

function timedCount() {
  document.getElementById('txt').value=c;
  c=c-1;
  t=setInterval("timedCount()",1000);
}

function stopCount() {
  clearInterval(t);
}
</script>

Мне нужно повторно вызывать обратный отсчет, пока пользователь не нажмет на ссылку. Он должен отсчитывать от 10 до 1 каждую секунду (10,9,8,7,6 ... 0) до тех пор, пока ссылка не будет нажата, но это не так. Кто-нибудь может мне помочь?

EDIT: Кто-нибудь знает, как перезапустить обратный отсчет, как только он достигнет 0?

Заранее спасибо.

1 Ответ

6 голосов
/ 23 ноября 2008
<script type="text/javascript">
var c=10;
var t;
function timedCount()
{
    document.getElementById('txt').value=c;
    c=c-1;
}
function startCount()
{
    if (!t) t=setInterval("timedCount()",1000);
}
function stopCount()
{
    clearInterval(t);
    t=null;
}
</script>

Вызовите startCount() в режиме onload (или как угодно), когда вы хотите, чтобы счетчик был запущен. Обратите внимание, что мои startCount и stopCount не создают многократные интервальные таймеры.

Кроме того, элемент с id = txt должен быть полем <input> или <textarea>, чтобы ваш код работал. Если это промежуток, вы должны использовать document.getElementById('txt').innerHTML=c;

Наконец, вы можете захотеть, чтобы timedCount () остановилCount (), если c опустится ниже нуля. Это достаточно просто:

if (c <= 0) stopCount();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...