Javascript 简单计时器无法正常工作

标签 javascript

请帮助我编写代码。我的问题是当计时器完成时,它显示 -1:60 而不是显示 0:00。我尝试了不同的 else 语句方式,但没有成功。当我将 if 语句中的条件更改为 x>0 时,计时器不会从 0:60 开始计时。任何帮助将不胜感激。我尝试了不同的 else, if else 语句,没有任何帮助。 先感谢您。

<h1  id='session' onClick='general()'>2</h1>

JS:

 var seconds=60;
 var x=document.getElementById('session').innerHTML-1;
 var t;

 function timer(){
   if(x>=0){
      seconds--; 
      if(seconds<10){
         seconds='0'+seconds;
        };
       if(seconds==0){
           x--;
          seconds=60;
         }
        }
    document.getElementById('session').innerHTML=x+':'+seconds;
 }

  function stoptimer(){
       clearInterval(t);
   }

    var on=true;
       function general(){
          if(on){  
                 on=false;
                t = setInterval(timer,200);
          }else{  
              on=true;
               stoptimer();
         }
       }

最佳答案

问题全是因为计时器函数,所以我对你的函数做了一些更改,并重写了它。我在 jsfiddle 中运行了它并且它正在工作。

function timer(){        
   if(x>=0 && flag==false){
      seconds--; 
      if(seconds<10){
         seconds='0'+seconds;
        };
       if(seconds==0){
           x--;
          seconds=60;
         }
        }
    if (x == -1){
     flag=true;
     x = 0;
     seconds = '00';
    }
    document.getElementById('session').innerHTML=x+':'+seconds;
}

确保使用全局变量 var flag=false; 以便正确执行此函数。 这是我创建的 jsfiddle 的链接:https://jsfiddle.net/35w4nkzm/1/

我希望这有帮助。

关于Javascript 简单计时器无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35394052/

相关文章:

javascript - Vuex getter 中的 JSON 对象复制

javascript - 当 style = auto 或 100% 时获取元素高度?

javascript - 数组内的数组到单个数组

javascript - 点击图片显示url的函数

javascript - 集成 firebase 分析以查看有多少用户访问我的网页

javascript - jquery 专注于负载

javascript - 如何在tinymce中的光标位置插入图像

javascript - 是否可以通过 Ajax 更改页面源内容变量

javascript - 将多个嵌套的 Promise 和 Promise 数组转换为 Observables

javascript - 如何在 AngularJs ng-repeat 中按数组过滤?