我有这个脚本:
var array = [];
array[0] = 'http://facebook.com/';
array[1] = 'http://instagram.com/';
array[2] = 'http://twitter.com';
$(document).ready(function()
{
for(i=0; i<= 2; i++)
{
$('#ifr').attr('src', array[i]);
// sleep here for 0,5 second
}
});
我怎么能停止这个循环0.5秒?
答案 0 :(得分:4)
您可以将setTimeout
用于此目的,
for(i=0; i<=2; i++) {
setTimeout(function(i) {
$('#ifr').attr('src', array[i]);
},500 * i,i);
//1000 ms is 1 sec, here I have give 0.5 seconds as a delay.
}
无需为每次迭代创建范围来处理闭包问题。您可以使用setTimout
的第三个参数来设置callBack
函数的参数。
答案 1 :(得分:1)
(function rec(i){
setTimeout(function(){
$('#ifr').attr('src', array[i]);
if(i <= 2) rec(i+1);
}, 5000);
})(0);
编辑:添加if(i <= 2)
以便它不会永远递归..这将在2次迭代后停止..