Pomodoro计时器:变量值变为“ NaN”

易卜拉欣

我正在尝试构建一个http://codepen.io/GeoffStorbeck/full/RPbGxZ/这样的Pomodoro时钟秒的值随机变为NaN,然后​​在开始“中断”后恢复正常。

$('#circle a').click(function() {
  var timer = $('.time > span').html();
  timer = timer.split(':'); 
  var minutes = timer[0];    //Value of minutes
  var seconds = timer[1];    //Value of seconds

  var settimer = setInterval(function() {
    seconds -= 1;
    console.log(seconds);
    if (seconds < 0 && minutes != 0) {
      minutes -= 1;
      minutes = String(minutes);
      seconds = 59;
    } else if (seconds < 10 && seconds.length != 2)
      seconds = '0' + seconds; 
    if (minutes < 10 && minutes.length < 2) 
      minutes = '0' + minutes;

    $('.time > span').html(minutes + ':' + seconds);

    //Start break when session is completed
    if (minutes == 0 && seconds == 0) {
      $('.upper').find('h1').text('BREAK');
      var time = $('#break').find('span').text();
      $('.time > span').html('0' + time + ':00');
      $('#circle a').trigger("click");  //Start timer for break
    }
  }, 1000);
});

这是指向Codepen的链接http://codepen.io/ibrahimjarif/pen/wMKJWN

如何解决NaN问题?有没有更好的方法来实现这一目标?

易卜拉欣

该代码以$('#circle a').trigger("click"); //Start timer for break递归方式调用最初执行的函数。当原始计时器正在进行时,此调用将启动一个新计时器。

执行新计时器时seconds,原始计时器值转到NaNsecond由于有两个计时器因此有两个值seconds原始计时器中的值导致出现无法解释的NaN

注意:两个计时器一直在同时运行。

最简单的解决方法是在启动新计时器之前先停止当前计时器。

这是更新的代码

 $('#circle a').click(function() {
  var timer = $('.time > span').html().split(':');;
  var minutes = Number(timer[0]),
    seconds = Number(timer[1]);

  var settimer = setInterval(function() {
    seconds -= 1;
    if (seconds < 0 && minutes != 0) {
      minutes -= 1;
      seconds = 59;
    } else if (seconds < 10 && seconds.length != 2)
      seconds = '0' + seconds;
    if (minutes < 10 && minutes.toString().length < 2)
      minutes = '0' + minutes;

    $('.time > span').html(minutes + ':' + seconds);

    if (minutes == 0 && seconds == 0) {
      clearInterval(settimer);    //Stop the current timer
      var upper_text = $('.upper').find('h1');
      var time;
      if (upper_text.text() == 'BREAK') {
        upper_text.text('Session');
        time = $('#session').find('span').text();
      } else {
        upper_text.text('BREAK');
        time = $('#break').find('span').text();
      }
      $('.time > span').html(time + ':00');
      $('#circle a').trigger("click");    //Start new timer
    }
  }, 1000);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使python计时器更改变量值

来自分类Dev

jQuery倒数计时器NaN

来自分类Dev

为什么Javascript变量值在模拟器中显示为NaN?-Android Phonegap

来自分类Dev

c#在用户控件中使用计时器更改值时从Form获取变量值

来自分类Dev

对象变量在几帧后变为 NaN

来自分类Dev

内联ASM:使用MMX在计时器上返回NaN秒

来自分类Dev

显示NaN的Javascript变量

来自分类Dev

Double.NaN的变量分配变为Double.NegativeInfinity

来自分类Dev

熊猫,如果包含Nan,则整数变量变为float

来自分类Dev

反应和设置间隔(FCC Pomodoro计时器..)

来自分类Dev

CLLocation变为axis.latitude的nan值

来自分类Dev

函数增加10后,var变为NaN

来自分类Dev

某些迭代后成本变为NaN

来自分类Dev

np.nan在GeoSeries中变为None

来自分类Dev

该值在javascript中变为NaN

来自分类Dev

我的值在 Pandas 中变为 NaN

来自分类Dev

PyAutoGui Nan NaN NaN

来自分类Dev

追加forloop迭代器变量值

来自分类Dev

Java计时器和计时器任务:在计时器外部访问变量

来自分类Dev

Java计时器和计时器任务:在计时器外部访问变量

来自分类Dev

当我尝试在.each函数之外使用变量时,变量变为Nan

来自分类Dev

javascript变量初始化显示NaN

来自分类Dev

变量在js中返回为NaN

来自分类Dev

使用`NaN`变量建立及格等级

来自分类Dev

逻辑变量可以容纳NaN吗?

来自分类Dev

函数内部的Javascript构造函数变量NAN

来自分类Dev

当我随机化bank变量时,bankMoney变为NaN

来自分类Dev

卡在尝试恢复已暂停(已停止)功能的时间-Pomodoro计时器

来自分类Dev

NaN值的序数编码器问题