我正在为一个类项目构建一个网页,特别是一个“关于我们”页面,它遍历团队成员的图片和描述。在视图中,我有这个:
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的第二个参数。
答案 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