我想告訴每隔一段時間(一秒)3行文字,下面的代碼:的javascript:使用的setTimeout在for循環中展現定期
<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>
但結果是:當我點擊顯示按鈕,第二秒, 所有三個div塊一起出現。我期待他們將以一秒的間隔逐一顯示。
我該如何解決這個問題?希望你的幫助。
所以問題是,當你點擊你調用setTimeout 3次的按鈕,所有setTimeouts延遲都是1秒?你的解決方案是動態改變每一次?每增加一個延遲時間1秒 –
正確。它們都從** now **延遲1秒,所以如果你想讓它們分開,你可以按順序給每個延遲加一個較大的延遲。但請注意,如果系統很忙,那麼他們可能仍然會以這種方式一次全部開火......鏈接會阻止這種情況發生。 –
第二種方式真是太棒了!非常感謝。 – programforjoy