Javascript 设置间隔延迟

Javascript 设置间隔延迟,javascript,arrays,setinterval,banner,banner-ads,Javascript,Arrays,Setinterval,Banner,Banner Ads,我试图执行一个旋转横幅(通过数组调用它)。我设置了一个间隔,但图像仅在10秒(10000)后显示,然后才开始旋转。我删除了数组中杂乱无章的HTML,但剩下的部分如下: var current = 0; var banners = new Array(); banners[0]=; banners[1]=; banners[2]=; banners[3]=; var myTimeout = setInterval("rotater()",10000); function rotater()

我试图执行一个旋转横幅(通过数组调用它)。我设置了一个间隔,但图像仅在10秒(10000)后显示,然后才开始旋转。我删除了数组中杂乱无章的HTML,但剩下的部分如下:

var current = 0; 

var banners = new Array();
banners[0]=;
banners[1]=;
banners[2]=;
banners[3]=;

var myTimeout = setInterval("rotater()",10000);

function rotater() {
    document.getElementById("placeholderlayer").innerHTML=banners[current];
    if(current==banners.length-1){  
        current = 1;
    }else{
        current += 1;
    }
 }

window.onload = rotater();
是正确的语法。您不想调用该函数。然而,防弹解决方案是:

onload = function() {
    rotater();
    window.myTimeout = setInterval(rotater, 10000); // Never pass a string to `setInterval`.
};

普罗蒂普™: 不要使用
新数组()
,请使用数组文字。例如,这:

var arr = new Array();
arr[0] = 'Hello';
arr[1] = 'world!';
应写为:

var arr = ['Hello', 'world!'];
是正确的语法。您不想调用该函数。然而,防弹解决方案是:

onload = function() {
    rotater();
    window.myTimeout = setInterval(rotater, 10000); // Never pass a string to `setInterval`.
};

普罗蒂普™: 不要使用
新数组()
,请使用数组文字。例如,这:

var arr = new Array();
arr[0] = 'Hello';
arr[1] = 'world!';
应写为:

var arr = ['Hello', 'world!'];
只是一句评论:

而不是:

if(current==banners.length-1) {
   current = 1; 

} else {
   current += 1;
} 
你可以做:

current = ++current % banners.length;
只是一句评论:

而不是:

if(current==banners.length-1) {
   current = 1; 

} else {
   current += 1;
} 
你可以做:

current = ++current % banners.length;

不是你要问的具体问题,而是值得注意的改进
setInterval
应该传递一个直接的函数引用,而不是这样的字符串:var
myTimeout=setInterval(rotater,10000)不是你要问的具体问题,而是值得注意的改进
setInterval
应该传递一个直接的函数引用,而不是这样的字符串:var
myTimeout=setInterval(rotater,10000)