Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 如何在jQuery中停止setInterval?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何在jQuery中停止setInterval?

Javascript 如何在jQuery中停止setInterval?,javascript,jquery,html,Javascript,Jquery,Html,/*正面设计:可运球https://cdn.dribbble.com/users/85456/screenshots/3996869/artboard_3_1x.png*/ var audio=新音频文件('http://soundbible.com/grab.php?id=1377&type=mp3'); var Pomotoro=25, currentTime=Date.parse(新日期()), 截止日期、时间间隔、中断时间=5, 我 函数beep(){ 音频播放(); } 变量计数=$(

/*正面设计:可运球https://cdn.dribbble.com/users/85456/screenshots/3996869/artboard_3_1x.png*/
var audio=新音频文件('http://soundbible.com/grab.php?id=1377&type=mp3');
var Pomotoro=25,
currentTime=Date.parse(新日期()),
截止日期、时间间隔、中断时间=5,
我
函数beep(){
音频播放();
}
变量计数=$('.sl').find('h2').text();
var count1=$('.bl').find('h2').text();
//console.log(count1);
函数plus(){
计数++;
$('.sl2').text(计数);
$('.timer').text(计数+“:00”);
pomodoro=$('.sl').find('h2').text();
}
函数负(){
如果(计数>1){
计数--;
$('.sl2').text(计数);
$('.timer').text(计数+“:00”);
pomodoro=$('.sl').find('h2').text();
//控制台日志(pomodoro);
}
}
函数plus1(){
count1++;
$('.bl2').text(count1);
休息时间++;
}
函数1(){
如果(计数1>1){
第1项--;
//beep();
休息时间--;
$('.bl2').text(count1);
//控制台日志(中断时间);
}
}
函数getTimeLeft(结束){
var total=Date.parse(end)-Date.parse(new Date());
var秒数=数学地板((总计/1000)%60);
var分钟=数学楼层((总计/1000/60)%60);
返回{
“总计”:总计,
“分钟”:分钟,
“秒”:秒
};
}
函数startClock(){
timeInterval=setInterval(函数(){
var t=getTimeLeft(截止日期);
$(“.timer”).html((“0”+t.minutes).slice(-2)+:“+(“0”+t.seconds.slice(-2));
if(t.total为什么在clearInterval之后添加“if(i==0){”呢?它将再次启动计数器。clearInterval只是停止执行代码,但它将遍历现有代码

只需从JS代码中删除以下内容:

if (i === 0) {
        startBreak();
      } else if (i === 1) {
        startPomodoro();
      }
你有什么理由吗?你不需要执行setInterval,它每1000毫秒执行一次,直到你清除它为止

您可以在此处阅读更多关于此的信息:


它总是会因为这个原因重新启动…
if(i==1){startPomodoro();}
True-Archer。代码需要这个if的原因是什么?那么,如何克服这个问题呢?有两个选项名称take break和start pomodoro。所以我添加了。你到底想做什么?启动一个新的“promoto”中断后的计时器?您设置了所需的计时器并按下按钮。计时器达到零后的下一步是什么?它必须停止。只需删除我在答案中所写的“如果”,它将停止,现在再次重新启动间隔。您不需要添加startPomodoro()在setInterval中,因为它无限次地执行内部代码,直到您清除它为止。ClearInterval对setInterval说,这将是最后一次运行时。