【发布时间】:2020-09-10 01:17:31
【问题描述】:
我有一个 setTimeout() 循环,它工作得很好,只是我不知道如何在需要时停止它。
我已经阅读了一些类似查询的帖子,但由于某种原因,我无法使这些解决方案适合我的情况,希望有人可以帮助我。
var timeout_function;
function testFunction(param1, param2, param3, action){
timeout_function = setTimeout(function start() {
if(action == 'start'){
primaryTestFunction(param1, param2, param3);
setTimeout(start, 10000);
}else{
clearTimeout(timeout_function);
}
}, 10000);
}
好的,所以我的想法是,当我运行 testFunction() 并且它包含“开始”操作时,setTimeout() 循环将开始,当我再次运行 testFunction() 但操作“停止”或其他任何操作时重要的是,它应该通过运行 clearTimeout() 来打破循环,但事实并非如此。
我什至在 timeout_function 之外和 if() 语句中放置了另一个 clearTimeout() 来捕获停止操作并运行 clearTimeout() 但它不起作用。
我可以启动它并相应地运行循环,但我不能让它停止。 提前致谢,
【问题讨论】:
标签: javascript jquery settimeout