我正在 jQuery 中处理一些超时问题,但我的超时值出现了问题。 所以,我得到了一个值数组(例如:[“2490”,“4200”]),我希望超时在 2490 毫秒后打印该数组的值,然后返回到 0 并最终打印该数组的下一个值4200ms后的数组。但它永远不会回到0
实际上,这是 jQuery 代码:
var array = ['2490', '4200'];
var mytimeout;
for (var i = 0; i < array.length; ++i)
{
doTimeout(i);
clearTimeout(mytimeout);
}
function doTimeout(i) {
mytimeout = setTimeout(function() {
$('#text').append(array[i]);
}, array[i]);
}
JSFIDDLE:https://jsfiddle.net/2aftscou/
所以一切似乎都有效,除了我希望我的计时器在结束时重新初始化为 0(这就是我使用 clearTimeout() 的原因,但它在这个中不起作用案例)。
我真的不知道该怎么办
最佳答案
这行不通。您的超时将在开始后终止。执行旧的超时后,您必须开始新的超时。
类似这样的事情
function doTimeout(i) {
mytimeout = setTimeout(function() {
$('#text').append(array[i]);
i++;
if (i<array.length) {
doTimeout(i)
}
}
}
关于javascript - setTimeout 改变超时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38000671/