私は経験している問題が何であるか知っています。誰かがこのようなことを体験したのか、彼らがどのような解決策をとったのか、私は疑問に思っていました。Javascriptスタックオーバーフロー、setTimeoutメソッド+渡し変数
私は保留中の修理のリストシステムを持っており、黒と赤の点滅が遅い修理が必要です。このリストには複数の修理が遅れている可能性があります。ここ
は私の関数である。
function setblink(id) {
var elm = document.getElementById(id);
if (elm.color == "red"){
elm.color = "black";
}
else{
elm.color = "red";
}
setTimeout(setblink(id),500);
}
私は「IDの」repsToBlink呼ば点滅する必要がある項目についての配列を持っています。
次のコードを実行することによって、これらの修復ごとに設定された点滅間隔が実行され、再帰的なループになります。
for(var x in repsToBlink){
setTimeout(setblink(repsToBlink[x]),500);
}
スタックオーバーフローを起こすことなく、同じコードを実行するにはどうすればよいですか?
ありがとうございます!
純粋なCSSでこれを行う場合は、[こちら](http://jsfiddle.net/Krr7m/)を試してください。詳細は[MDN](https://developer.mozilla.org/ja/CSS/CSS_animations)をご覧ください。より多くのブラウザで動作するようにベンダー固有のプレフィックスを追加する必要があり、古いブラウザでは動作しません。 –
私は、各要素の 'setTimeout()'の大ファンではありません。リストを代わりに使用する:http://jsfiddle.net/HdCbt/ –
[Maximum Call Stack Size Exceeded](http://stackoverflow.com/questions/8731840/)、[なぜかっこ付きのsetTimeoutを起動しないと新しいコールスタック?](http://stackoverflow.com/questions/8058996/)。 – outis