Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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 清除超时不工作以结束设置的超时?_Javascript_Cleartimeout - Fatal编程技术网

Javascript 清除超时不工作以结束设置的超时?

Javascript 清除超时不工作以结束设置的超时?,javascript,cleartimeout,Javascript,Cleartimeout,我在一个对象数组上循环,每个对象显示对象中包含的时间量。我想添加“上一步”、“暂停”和“下一步”按钮。我在setTimeout函数外声明了timeID变量,以便在函数内的click事件上调用clearTimeout。Click事件正在工作,因为它将背景颜色变为绿色,但clearTimeout(timeID)不是 下面是它的截图 函数generateWorkout(){ 让startButton=document.getElementById(“startButton”); //单击“开始”按钮

我在一个对象数组上循环,每个对象显示对象中包含的时间量。我想添加“上一步”、“暂停”和“下一步”按钮。我在setTimeout函数外声明了timeID变量,以便在函数内的click事件上调用clearTimeout。Click事件正在工作,因为它将背景颜色变为绿色,但clearTimeout(timeID)不是

下面是它的截图

函数generateWorkout(){
让startButton=document.getElementById(“startButton”);
//单击“开始”按钮以循环浏览当前电子设备
startButton.onclick=函数(){
var source3=document.getElementById(“runDownHandle”).innerHTML;
var template3=handlebar.compile(source3);
var编译HTML3;
//循环查看CurrentPhase练习中的练习数
循环1:
for(设i=0;i
currentPhaseExercises.length有多长?您正在以下位置创建超时:

for (let i = 0; i < currentPhaseExercises.length; i++) {
for(设i=0;i
循环,所以您正在进行一系列超时,而不仅仅是一次。以下简单代码举例说明了问题:

var超时;
函数go(){
对于(变量i=0;i<5;i++){
timeout=setTimeout(函数(){
console.log(“Running”);
},i*1000);
}
}
函数停止(){
clearTimeout(超时);
}
go();

停止()
var-timeID
更改为
let-timeID
怎么样?这很奇怪。虽然我同意
let
是一个更好的选择,但从我所知道的设置方式来看,这并不重要。你能在onclick函数中放置一个timeID的控制台日志,看看它是否报告,例如,所有用户的数字都相同吗或者它是否正确地以不同的方式输出?在我更改var之前,让onClick函数中的console.log for timeID报告7(数组中的对象数)每次。在我将var更改为let之后,当我在onClick函数中console.log timeID时,它会根据显示的练习递增报告一个数字1-7。我的答案令人满意吗?如果是,请用接受的复选标记和upvote标记一个。谢谢!
for (let i = 0; i < currentPhaseExercises.length; i++) {