【问题标题】:Pomodoro Clock not Stopping after countdown倒计时后番茄钟不停止
【发布时间】:2016-02-03 15:13:49
【问题描述】:

时钟一直工作到零,这是它应该启动休息计时器的地方。问题是它变为零然后开始以负数倒计时。这是具有该代码的函数。顺便说一句,我的间隔是 100,所以我在测试时钟时不必等待很长时间。

//This function is the culprit
function start(){
    $("#start").addClass("disabled");
    $("#myreset").addClass("disabled");
    var secs = Number("59");

    var min = document.getElementById("sessiontime").innerHTML; 
    min = min-=1;

    if(min > -1){
        startcounter = setInterval(function(){
            secs--;

            if(secs > 9){
                document.getElementById("mytimer").innerHTML = min +":"+ secs;
            } else if(secs >=0 && secs < 10){
                secs = "0"+secs;
                document.getElementById("mytimer").innerHTML = min +":"+ secs;
            } else if(secs < 0){
                min--;
                secs = 59;
            } else if(secs === 0 && min === 0){
                clearInterval(startcounter); 
                var x = document.getElementById("arrownumid").innerHTML;
                mybreak(x);
            }
        },100);
    }
}

http://codepen.io/sammyb123/pen/QyQaPr

【问题讨论】:

  • 尝试在jsfiddle.net 中设置它,这将有助于我们帮助您调试它。
  • 我对小提琴不熟悉,但这里是codepen codepen.io/sammyb123/pen/QyQaPr
  • 尝试将console.log 语句放在代码中的重要位置,看看会执行什么。或者为您喜欢的浏览器使用 Javascript 调试器(按 F12)并在您的代码中设置断点。
  • 问自己的问题:secs 为 0 时会发生什么? if 语句的哪个分支会执行?

标签: javascript variables if-statement timer


【解决方案1】:

我实际上想通了,可能不是最有效的,但它做了它应该做的事情。感谢您抽出宝贵时间提供帮助。

function start(){
    $("#start").addClass("disabled");
    $("#myreset").addClass("disabled");

    var secs = Number("59");
    var min = document.getElementById("sessiontime").innerHTML; 
    min = min-=1;

    if(min>=0){
       startcounter = setInterval(function(){
       secs--;

          if(secs > 9){
             document.getElementById("mytimer").innerHTML = min +":"+ secs;
                } if(secs >0 && secs < 10){
                   secs = "0"+secs;
                   document.getElementById("mytimer").innerHTML = min +":"+ secs;
                      } if(secs ===0 && min >0){
                           min--;
                           secs = 59;
                         } 

                              else if(min ===0 && secs ===0){
                                 document.getElementById("beep").play();
                                 stop(startcounter);
                                 clearInterval(startcounter); 
                                 var x = document.getElementById("arrownumid").innerHTML;
                                  mybreak(x);
                              }
                      },1000);
                   }
                }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    相关资源
    最近更新 更多