をテキストを表示するforループ内のsetTimeoutを使用して、ここでのコードがあります:のjavascript:私は定期的な間隔(1秒)で3行を表示したい定期的に
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
function showText()
{
var itemlist = document.getElementsByClassName("test");
function additem(index) {
setTimeout(function(){itemlist[index].setAttribute("style", "display:block;");}, 1000);
}
for(var i=0;i<itemlist.length;++i) {
additem(i);
}
}
</script>
</head>
<body>
<input type="button" value="show" onClick="showText()">
<div class="test" style="display:none">first</div>
<div class="test" style="display:none">second</div>
<div class="test" style="display:none">third</div>
</body>
</html>
しかし、結果は次のとおりです。私がクリックしたとき2番目の後の すべての3つのdivブロックが一緒に表示されます.1秒間隔で1つずつ表示されることを期待していました。
どうすればこの問題を解決できますか?あなたの助けを願います。
ですから、ボタンをクリックしたときにsetTimeoutを3回呼び出すと、そのすべてのsetTimeoutsの遅延が1秒になるという問題がありますか?あなたのソリューションは動的にそれぞれの時間を変更することですか?遅延時間がすべての要素に対して1秒増加する –
正しい。 ** **から** 1秒間遅延しますので、間隔を空けておきたい場合は、順番にそれぞれの遅延を大きくすることができます。しかし、システムがビジー状態であれば、それでもそれらを一度にすべて発射する可能性があることに注意してください。 –
2番目の方法は本当に素晴らしいです!どうもありがとう。 – programforjoy