2014-12-02 71 views
0

我正在爲一個類項目構建一個網頁,特別是一個通過圖片和團隊成員描述進行迭代的「關於我們」頁面。在視圖,我有這樣的:JavaScript時序:尋找讓setInterval替代時間的方法

setInterval(function() { 
    $("#about-img").attr('src', img_src[i]); 
    $("#name").html(names[i]); 
    $("#description").html(descriptions[i]); 
    i = (i + 1) % img_src.length; 
}, 8000); 

這有效地迭代,但是,有時描述是比別人更長的時間。有什麼方法可以等待更長的時間,描述的時間越長嗎?簡單的東西就是

waits(descriptions[i].length * 50); 

在setInterval函數中,但javascript沒有辦法做到這一點。我能做什麼? setTimeout是異步的,我不能從第一個範圍影響setInterval的第二個參數。

回答

3

使用的setTimeout,而不是一個區間

function changeMessage() { 
    $("#about-img").attr('src', img_src[i]); 
    $("#name").html(names[i]); 
    $("#description").html(descriptions[i]); 
    i = (i + 1) % img_src.length; 
    window.setTimeout(changeMessage, descriptions[i].length * 50); 
} 
0

這是你會如何做所涉及的定時器(S):

要一段時間後,這樣做只是一次:

window.setTimeout(function(){alert('test');}, 3000);//3 seconds 

永遠這樣做:

window.setInterval(function(alert('test');){}, 3000);//do it forever in 3 second intervals