while (counterInc < counter) {
window.setTimeout(function () {
$('#results').text(counterInc);
}, 3000);
counterInc++;
}
此代码应每 3000 毫秒递增带有 ID 结果的标签,而不是运行 while 循环并返回最终结果。例如,不是将文本更改为 1、2、3、4、5、..n,而是将文本更改为 n。如何让循环每 1000 毫秒更新一次文本字段,而不是只更新最终结果?
最佳答案
试试这个
var counterInc = 0;
var counterMax = 10;
var timeoutId = window.setInterval(function() {
$('#results').text(counterInc++);
if (counterInc >= counterMax) {
window.clearInterval(timeoutId);
}
}, 500);
发生的事情是你超时每三秒更新一次单元格,但是,你的循环可以在 3 秒内运行大量的数字,所以它在 setTimeout 中的函数运行时完成了很久。
这将每 500 毫秒触发一次函数(根据您的目的更改为 3000 毫秒),然后它才会递增 counterInc。添加它会在达到 counterMax 时清除 Interval。
关于javascript - while 循环只返回最终结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12062340/