2016-07-18 4 views
0

私はforループを持っており、その中にjsコードを持っています。settimeoutは、ピアノノートのリストの配列に応じて各鍵の色を設定する機能を持っています)。ピアノ鍵は特定の持続時間の間オレンジ色にとどまり、元の色に戻ります。しかし、それが起こるように、settimeoutは常に示唆どおりに機能しません。settimeout javascript関数が動作しません

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

これについての助けもありがとうございます。

+1

を使用する必要があるループはそのabcweb-min.jsはなく、私が書かれている何かからのようなかなり大きいループ – brk

+0

を含め、コードを編集して配置してください。私は彼らが鍵を出し入れすることを望んでいますが、時には何らかの理由でsettimeoutが最初に動作しますが、後で正確に期待どおりに動作しません。 – sam

+0

「それはいつも示唆したように機能しません」 - それはどういう意味ですか? – poke

答えて

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 
} 
関連する問題