私はそれがあなたのほとんどにとって簡単だと知っていますが、今は私を悩ませています。私は配列とその要素を毎秒ループし、要素が呼び出される関数を実行しようとしていました。しかし、結果は常にすべての要素を一度に印刷するループです。毎秒配列要素を印刷する
これは私のコードのようです。ごめんなさい。
var ticking = window.setInterval(ticks, 1000);
function ticks() {
var morse = ['.', '-', '-', '-', '-'];
for (i = 0; morse.length > i; i++) {
if (morse[i] == '.') {
tickArrowDegree = 516;
$('#tick-arrow').css({'transform': 'rotate(' + tickArrowDegree + 'deg)'});
setTimeout(function reset() {
$('#tick-arrow').css({'transform': 'rotate(' + startPoint + 'deg)'});
}, 500);
}
else {
tickArrowDegree = 522;
$('#tick-arrow').css({'transform': 'rotate(' + tickArrowDegree + 'deg)'});
setTimeout(function reset() {
$('#tick-arrow').css({'transform': 'rotate(' + startPoint + 'deg)'});
}, 500);
}
}
}
をグラッド「しかし、結果は常に、一度にすべての要素を印刷するループです。」どの要素を印刷していますか? –
'setTimeout()'は後で実行される関数をキューに入れます。現在の実行を一時停止しません。すべてのタイムアウトはループが終了した後に実行されます。既存のコードを変更する最も簡単な方法は、遅延を '500 * i'にする代わりに '500 * i'に設定することです。 – nnnnnn
すべての要素が印刷されるまで、最初の要素を印刷し、一時停止してから2番目に印刷し、もう一度一時停止したいと思います。 – Vasko