JavaScript中的时序:找到一种使setInterval交替时间的方法

时间:2014-12-02 03:26:14

标签: javascript jquery

我正在为一个类项目构建一个网页,特别是一个“关于我们”页面,它遍历团队成员的图片和描述。在视图中,我有这个:

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的第二个参数。

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

这是您可以使用的计时器:

一段时间后再做一次:

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

永远这样做:

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