我有一个js
代码,其中我有一个for
循环,在其中,我有一个settimeout
函数来设置钢琴的每个键的颜色,具体取决于列出一系列钢琴音符(得分)。钢琴键在特定时间内保持橙色,然后返回原始颜色。但它发生了,settimeout
并不总是按照建议工作。
setTimeout(function() { document.getElementById(val_key).style.fill = current_color; },duration);
非常感谢任何帮助。
答案 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
}