无限循环通过阵列

时间:2017-08-08 14:14:53

标签: jquery

有一个脚本为我提供了一些网址:

["slides\/1.html","slides\/2.html"]

现在我想加载这些幻灯片10秒钟,然后继续前进到下一张幻灯片。在数组结束时,我想回忆一下脚本以再次获取新的URL。

我的实际解决方案仅显示slide2

$(document).ready(function() {
   loadPages();
});

function loadPages() {
    $.getJSON("scan.php", function(data){
        $.each(data, function (key, value) {
            console.log(value)
            setTimeout(function() { 
                $('.slides').load('http://axon.info/'+value);
            }, 10000); 
        });
    });
}

更新

解决了我的问题:

$(document).ready(function() {
   loadPages();
});

function loadPages() {
    $.getJSON("scan.php", function(data){
        $.each(data, function (index, value) {
            setTimeout(function() { 
                $('.slides').load('http://axon.info/'+value);
            },(index+1) *8000); 
        });
    });
    setTimeout(loadPages, 1000);
    }

我能改进的任何事情?

1 个答案:

答案 0 :(得分:1)

循环几乎立即完成,因此您实际上同时运行多个setTimeout

使用数组index作为延迟的乘数

   $.each(data, function (index, value) {
        console.log(value)
        setTimeout(function() { 
            $('.slides').load('http://axon.info/'+value);
        },(index+1) * 10000); 
    });