繁体   English   中英

为什么计数时钟不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM