2011-02-12 47 views
1

我想用數組中的值替換div的內容。我想每個值都保留在div中3秒。這裏是我到目前爲止的代碼:如何在jQuery中使用.html()與計時器?

 var images = ['a.jpg', 'b.jpg', 'c.jpg']; 

     for (i = 0; i < images.length; i++) { 
      $('#slideShow').html("<img src='../"+images[i]+"' alt='' />"); 
     } 

當然這改變了圖像如此之快,人的眼睛只能看到一個圖像在任何時候股利之中。我希望每個圖像保持3秒,然後在div上完成下一個.html()。這個怎麼做?

+0

什麼JCOC611說,你應該考慮改變時IMG元素的src屬性,而不是注入新的一個到DOM每次 – 2011-02-12 02:16:16

回答

1

這個答案假定你想循環。如果沒有,評論和我會重寫。

<script> 
var images = ['a.jpg', 'b.jpg', 'c.jpg']; 
var curimage = 0; 
function changeImage() { 
    $('#slideShow').html("<img src='../"+images[curimage]+"' alt='' />"); 
    curimage++; 
    if (curimage > images.length) curimage = 0; 
} 
changeImage(); 
window.setInterval(changeImage, 3000); 
</script> 

我試過這個答案。

3

試試這個:

images = ["a.jpg", "b.jpg", "c.jpg"]; 

function change(i){ 
    if(!images[i]){return false} 
    else{ 
    $("#slideShow").src=images[i]; 
    setTimeout(function(){ change(i+1) }, 3000); 
    } 
} 
change(0); 

沒有測試它,但它應該工作。

+0

應該換我數組長度 – 2011-02-12 02:17:18

+0

後,我錯過了笑,只是編輯它的變量。 – JCOC611 2011-02-12 02:18:20