这是一个codepen:CODEPEN
问题是setTimeout只运行一次:
var inter = document.getElementById("interval");
var i = 1;
window.setTimeout(function () {
i++;
inter.innerHTML = "Interval: " + i;
}, 500)
我已经检查了其他关于SO的问题,人们正在调用它们的函数而不是传递函数引用:
window.setTimeout(myFunc(), 1000);
但是我正在传递一个函数ref,所以我必须做错其他的事情。有人可以帮我找一下它是什么吗?
编辑:谢谢!我简直不敢相信我把这两个混在了一起!
答案 0 :(得分:2)
setTimeout
只能运行一次。
改为使用setInterval
。
var inter = document.getElementById("interval");
var i = 1;
window.setInterval(function () {
i++;
inter.innerHTML = "Interval: " + i;
}, 500)
答案 1 :(得分:0)
如果你想一遍又一遍地使用setInterval
var inter = document.getElementById("interval");
var i = 1;
window.setInterval(function () {
i++;
inter.innerHTML = "Interval: " + i;
}, 500)
答案 2 :(得分:0)
使用setTimeout()
,例如从1到100,你可以这样做:
var inter = document.getElementById("interval");
var i = 1;
function run() {
inter.innerHTML = i;
window.setTimeout(function() {
if(i < 101) { // Or without the if-statement to run it infinite
run();
}
i += 1;
}, 50);
}
run();