所以我认为从我遇到的这种情况中可以找到一些关键因素,并希望有一些经验可以解释它。
当我运行此代码时,它不起作用:
t5 = "nikolas"+t4;
setInterval(adds,250);
function adds(){
if (t4 < 100){
t4=t4+1;
}
else{
return;
}
};
这确实有效:
t5 = "nikolas"+t4;
adds(t4);
function adds(a){
if (a < 100){
a=a+1;
setInterval(t4=a,250);
}
else{
return;
}
};
TL; DR:setInterval似乎在if块内部工作但不在外部。当它工作时,它显示nikolast4,其中t4是一个从1-100'滴答'的整数(例如,强文本 nikolas0 nikolas1 nikolas2 nikolas3 nikolas4)
此代码(由于我正在编程的应用程序)应该每隔250毫秒刷新一次(但是需要整个刷新部分,并不是完全100%确定)。
答案 0 :(得分:1)
下面的代码完全是函数式的,看起来非常像你的非工作示例。
你可以在这里查看: http://jsbin.com/ofezip/1/edit
所以我猜你的变量范围有问题。
window.onload = function() {
var myOutput = document.createElement("output");
document.body.appendChild(myOutput);
var t4 = 0;
var helloInterval = setInterval(adds,250);
function adds(){
if (t4 < 10){
t4++;
myOutput.value = "hello " + t4;
}
else {
myOutput.value = "goodbye" ;
clearInterval(helloInterval);
return;
}
}
};