Таймер обратного отсчета JavaScript не запускается [Код включен] - PullRequest
0 голосов
/ 20 ноября 2011

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

Я думаю, что мой код правильный, но он не работает.

Цель кода: Код предполагает показ таймера, уменьшающегося до тех пор, пока он не покажет содержимое, равное DONE в первой строке кода.

Проблема: Я попытался создать HTML-страницу на своем локальном компьютере и протестировал ее, но она не работает, также я загрузил ее на свой веб-сайт, и она тоже не работает.

Код:

<body>

<div 
         id="JSPractice5" 
          style="border-style:dotted; 
          padding:10px; 
          font-size:24px; 
          width:200px; 
          text-align:center;">
Countdown Starting
</div>

<script type="text/javascript">
var containerID = "JSPractice5";
var number = 100;
var timerID = setInterval("CountdownTimer()",1000);
function CountdownTimer() {
if(number > 1) {
    number--;
    ReplaceContentInContainer(containerID,number); //Mark1
    }
else {
    clearInterval(timerID);
    ReplaceContentInContainer(containerID,'DONE!!');
    }
}
   </script>
</body>

Если решение проблемы простое / глупое, и вы решили отказаться от голосования, пожалуйста, не делайте этого, потому что я очень плохо знаком с SOF и JS:)

Спасибо заранее, ребята.

Ответы [ 3 ]

2 голосов
/ 20 ноября 2011

Тебе не хватает

function ReplaceContentInContainer(id, content)
{
    document.getElementById(id).innerHTML = content;
}
1 голос
/ 20 ноября 2011

Повторите ваш setInterval вызов, чтобы указать саму функцию, а не строку, содержащую вызов.

См. http://jsfiddle.net/2zwbV/2/ для рабочего примера.

0 голосов
/ 20 ноября 2011
<body>

<div 
         id="JSPractice5" 
          style="border-style:dotted; 
          padding:10px; 
          font-size:24px; 
          width:200px; 
          text-align:center;">
Countdown Starting
</div>

<script type="text/javascript">
var containerID = "JSPractice5";
var number = 100;

function CountdownTimer() {
if(number > 1) {
    number--;
    ReplaceContentInContainer(containerID,number);
    }
else {
    clearInterval(timerID);
    ReplaceContentInContainer(containerID,'DONE!!');
    }
}
var timerID = setInterval(CountdownTimer(),1000);
   </script>

</body>

Во-первых, timerID должен быть после функции CountdownTimer, поскольку если вы не собираетесь вызывать несуществующую функцию, во-вторых, функция CountdownTimer не должна быть в кавычках.

...