while (counterInc < counter) {
window.setTimeout(function () {
$('#results').text(counterInc);
}, 3000);
counterInc++;
}
此代码应每隔3000毫秒递增具有ID结果的标签,而不是while循环正在运行并返回最终结果。例如,不是将文本更改为1、2、3、4、5..n,而是将文本更改为n。循环如何每隔1000毫秒而不是最终结果每隔1000毫秒更新文本字段?
最佳答案
试试这个
var counterInc = 0;
var counterMax = 10;
var timeoutId = window.setInterval(function() {
$('#results').text(counterInc++);
if (counterInc >= counterMax) {
window.clearInterval(timeoutId);
}
}, 500);
http://jsfiddle.net/GufCs/4/
发生的事情是您超时每三秒钟更新一次单元格,但是,循环可以在3秒内遍历大量的数字,因此距离setTimeout中的函数运行时间已经很久了。
这将每500ms触发一次功能(根据您的目的更改为3000ms),然后才使counterInc递增。添加它会在达到counterMax时清除时间间隔。