刷新Javascript计时器

时间:2018-08-28 23:32:53

标签: javascript timer setinterval

我正在尝试使用javascript制作正确/错误的应用程序。这是我的计时器代码:

var timeleft = 3;
var downloadTimer = setInterval(function() {
    timeleft--;
    document.getElementById("geri_sayim").textContent = timeleft;
    if (timeleft <= 0) {
        clearInterval(downloadTimer);
        alert("time is up");
    }
},1000);

我具有以下功能:

CreateQuestion();
CheckAnswer();
isConfirm();

当我将此计时器添加到CreateQuestion()时,它可以工作。但是我想在用户单击答案按钮时停止此计时器。因此,我将此代码添加到CheckAnswer()

clearInterval(downloadTimer);

但是,当我这样做时,应用程序将无法运行,计时器也将无法运行。基本上,我希望每个问题都从3开始倒数。我怎么了?

2 个答案:

答案 0 :(得分:0)

我解决了这个问题。 我将var downloadTimer编辑为downloadTimer

答案 1 :(得分:0)

此解决方案适用于您想要实现的目标:

HTML

<body onload="createQuestion();">
<p id="my-question"></p>
<p id="time-left">3</p>
<button onclick="checkAnswer();">Check Answer</button>


JavaScript

var timeleft = 3;
var myTimer;

function createQuestion() {
    // You create your question..
    document.getElementById("my-question").innerHTML = "Do you know the answer to this question?";
    // ..and start the timer..
    myTimer = setInterval(function() {
    timeleft--;
    document.getElementById("time-left").textContent = timeleft;
    if (timeleft <= 0) {
        clearInterval(myTimer);
        alert("Time is up!");
    }
    },1000);
}
function checkAnswer() {
    // Pause the time!
    clearInterval(myTimer);
    alert("Time paused!");
}
function isConfirm() {
    // Whatever other code you wrote for this function
}