Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数学游戏中Javascript计时器出错_Javascript_Html_Timer - Fatal编程技术网

数学游戏中Javascript计时器出错

数学游戏中Javascript计时器出错,javascript,html,timer,Javascript,Html,Timer,我正在用javascript做一个简单的数学游戏。在开始生成新问题时需要重置计时器之前,一切都正常。在这一刻,发生了一些非常奇怪的事情。计时器开始显示一些奇怪的负值或不真实的正值 要体验我的问题,请先按“播放”按钮,然后开始玩游戏。只输入正确答案。经过一些尝试,你会发现计时器有问题 下面的完整代码: 功能计时器(timeleft){ 时间间隔=5; timeTime=setInterval(函数(){ 时间限制--; document.getElementById(“倒计时”).textCo

我正在用javascript做一个简单的数学游戏。在开始生成新问题时需要重置计时器之前,一切都正常。在这一刻,发生了一些非常奇怪的事情。计时器开始显示一些奇怪的负值或不真实的正值

要体验我的问题,请先按“播放”按钮,然后开始玩游戏。只输入正确答案。经过一些尝试,你会发现计时器有问题

下面的完整代码:

功能计时器(timeleft){
时间间隔=5;
timeTime=setInterval(函数(){
时间限制--;
document.getElementById(“倒计时”).textContent=timeleft;

如果(timeleft您生成了setInterval()的多个实例。这就是为什么在执行clearInterval()时,只清除了立即setInterval实例。但是,其他实例仍在运行

  • 我评论了那些必须删除的行
  • 您必须在另一个setInterval()之前调用clearInterval()。因此,我将clearTime()放在load()之前
  • varnumber1,number2,max=10,
    符号,numberSigns=2,
    输出,userOutput,points=0,timeleft=10,timeTime;
    函数endGame(){
    隐藏(“点”);
    隐藏(“倒计时”);
    隐藏(“基”);
    随机颜色();
    }
    功能计时器(timeleft){
    时间间隔=5;
    timeTime=setInterval(函数(){
    时间限制--;
    document.getElementById(“倒计时”).textContent=timeleft;
    如果(函数中的timeleft
    timer()
    replace
    timeleft--;
    by
    --timeleft;
    function timer(timeleft){
        timeleft = 5;
        timeTime = setInterval(function() {
            timeleft--;
            document.getElementById("countdown").textContent = timeleft;
            if(timeleft <= 0){
                clearInterval(timeTime);
            }
        },1000)
    }
    function clearTime() {
        clearInterval(timeTime);
        timeleft=5;
        timer(5);
    }