javascript - Javascript 中 for 循环内的 setInterval

标签 javascript jquery for-loop setinterval

下面的代码需要在 for 循环中放入 setInterval 。我基本上需要在 for 循环的下一次迭代之间插入 10 秒的暂停。这是一个非常基本的脚本,它在 div 中显示横幅 10 秒,然后再转到下一个。现有的 setInterval 是我从另一个网站下载的代码,因为我没有选项了。有什么帮助吗?如果你不介意向我解释其中的逻辑,以便我了解 future :)

$("document").ready(function() {

// bannerChange
function bannerChange(banner,div,milliseconds) {
    var length = banner.length;
    for(i=0;i<length;i++) {
        (function(i) {
            setInterval(function() {
                var url = banners[i].url;
                var img = banners[i].image;
                $("#"+div).html("<a href='"+url+"' target='_Blank'><img src='www/images/banners/"+img+"' /></a>");
            },milliseconds)
        })(i);
    }
}

function showBanner(bannerName, bannerDiv, milliseconds) {
    var url = "www/scripts/ajax/getBanners.php";
    $.post(url, {name: bannerName}, function(data) {
        if(data.response == true) {
            bannerChange(data.banners,bannerDiv,milliseconds);
        }
    });
}

// Run banners
showBanner("Test Banner","test",10000);
});

最佳答案

这是基于评论的更新版本:

// Start by getting the banners:

var banners = [];
var currentBanner;

function getBannersFromServer(...) {
    // TODO: make ajax call to server for banners

    // push the banners into a queue for later
    for (var i in bannerFromServer) {
        banners.push(bannersFromServer[i]);
    }
}

// Then run through them:

function showNextBanner() {
    // advance to next banner
    currentBanner++

    // go back to the beginning after the last banner is displayed
    if(currentBanner >= banners.length) currentBanner = 0;

    // pull a banner out of the queue
    var banner = banners[currentBanner];

    // TODO: Show the banner in the div

    // do it again in 10 seconds
    showNextBanner();
}

// start it all
getBannersFromServer();
getNextBanner();

关于javascript - Javascript 中 for 循环内的 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784546/

相关文章:

jquery - 为图像添加 ID

javascript - 选择后更改选择选项显示的文本但在更改选择时返回

python - for 循环以提取 pandas 中数据帧的 header

javascript - 字符串计算器 - 需要使用实数添加 2 个字符串我正在使用 2 个 for 循环

javascript - Vue.js 更新数组的内容

javascript - node.js:readLine 但最后一行未保存在数组中

javascript - 从两个数组创建 JSON 对象

javascript - jquery改变函数内部的全局变量

javascript - ReactJS - 如何根据另一个组件更改组件的状态

c# - 使用 For Loop C# 在按钮上单击标签增量