2014-12-02 69 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