如何在for-in遍历出对象,已对象作为参数每隔一段时间执行函数?

页面上有多个轮播,需要获取用户设置的值来调整轮播效果,轮播间隔时间是相同的,需要处理延时时间来不同步切换,

想到用定时器来控制轮播的初始化。

function swiperInit(option,time){


             console.log(option);

                for(var key in option){

                    setTimeout(function(){

                        new Swiper(key, {

                            direction: 'horizontal',

                            loop: true,

                            autoplay: time,

                            speed: 2000,

                            effect: option[key],

                        });

                    },500);

                }

         }

swiperInit(option,advertTime);


30秒到达战场
浏览 633回答 2
2回答

摇曳的蔷薇

感觉就是个闭包的问题,你试试下面的代码:function swiperInit(option,time){    console.log(option);    var i = 0    for(var key in option) {        setTimeout((function(key){            return function() {                new Swiper(key, {                    direction: 'horizontal',                    loop: true,                    autoplay: time,                    speed: 2000,                    effect: option[key],                });            }        })(key),500 * i++);    }}swiperInit(option,advertTime);

慕容森

闭包问题 在 for里面写一个匿名函数就可以了for(var currentKey in obj){    (function (key) {        setTimeout(function () {            new Swiper(key, {                direction: 'horizontal',                loop: true,                autoplay: time,                speed: 2000,                effect: option[key],            })        }, 500);    })(currentKey);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript