Settimeout javascript功能不起作用

时间:2016-07-18 07:12:24

标签: javascript

我有一个js代码,其中我有一个for循环,在其中,我有一个settimeout函数来设置钢琴的每个键的颜色,具体取决于列出一系列钢琴音符(得分)。钢琴键在特定时间内保持橙色,然后返回原始颜色。但它发生了,settimeout并不总是按照建议工作。

setTimeout(function() { document.getElementById(val_key).style.fill = current_color; },duration);

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您需要传递不同的duration。由于完整的代码不存在,我只能假设它一直在执行,因为持续时间是相同的。

您还需要使用IIFE & closure

for (var i = 0; i <=someLength; i++) {
    (function(index) {
        setTimeout(function() { 
          document.getElementById(val_key).style.fill = current_color;
      }, i * someDuration);
    })(i); // pass value of i
}