我正在尝试执行一个旋转横幅(通过数组调用它)。我设置了一个间隔,但图像仅在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();发布于 2012-07-30 07:58:09
window.onload = rotater;是正确的语法。你不会想调用这个函数的。然而,防弹解决方案是这样的:
onload = function() {
rotater();
window.myTimeout = setInterval(rotater, 10000); // Never pass a string to `setInterval`.
};提示™:不要使用new Array(),使用数组™。例如,如下所示:
var arr = new Array();
arr[0] = 'Hello';
arr[1] = 'world!';应该写成:
var arr = ['Hello', 'world!'];发布于 2012-07-30 10:30:32
这只是一个评论:
而不是:
if(current==banners.length-1) {
current = 1;
} else {
current += 1;
} 您可以执行以下操作:
current = ++current % banners.length;https://stackoverflow.com/questions/11713992
复制相似问题