JS中setInterval方法中函数值的增加不正确。

新手上路,请多包涵

setInterval()方法里面定义了一个值,使得
x -= 1;

 secondLength = 60;
 setInterval(function(){
     console.log(secondLength);
     secondLength -= 1;
     setDefault(secondtx,secondLength)
    },1000);

大概是这个样子,第一遍运行的时候还正确,secondLength的值每秒递减一,第二遍运行的时候就变成每秒递减2了.不知道为什么,具体的程序有点长,这是我在写一个倒计时的东西的时候用到的..
Codepen代码:https://codepen.io/GoodNetize...
求助各位大佬们..这是个残废品,因为我好像写不出来了,接下来不知道怎么写..是仿照这个时钟的效果来写的.
仿照这个:https://codepen.io/Khatybov/p...

阅读 1.8k
2 个回答

很可能的原因就是,你的这段定时器代码第二次打开时属于重复声明。可以再每次声明前先请一下定时器id

clearInterval(id) ;
id = setInterval(function(){},1000);

 secondLength = 60;
 clearInterval(timer);
 var timer = setInterval(function(){
     console.log(secondLength);
     secondLength -= 1;
     setDefault(secondtx,secondLength)
    },1000);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题