[英]Why doesn't the count up clock work?
for(i=0;i<10;i++){
setTimeout(function(){
document.write(i);
},(i*1000));
}
这是我的代码,它除了计数部分外都有效。 它每秒写入 10 个。谁能告诉我为什么?
这是一个已知问题。 当你像i
这个值变化那样迭代时,在执行超时函数之前,你需要为每次执行复制i
值。
最简单的解决方案是将其传递给单独的方法,如下所示:
for(i=0;i<10;i++){
addToDocument(i);
}
function addToDocument(i){
setTimeout(function(){
document.write(i);
},(i*1000));
}
与 java 不同,javascript 的问题在于它不会将i
视为最终的内部结构,这就是您需要复制它的值的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.