1

回転バナーを実行しようとしています(配列を介して呼び出します)。間隔を設定しましたが、画像は 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();
4

2 に答える 2

3
window.onload = rotater;

正しい構文です。関数を呼び出したくありません。ただし、防弾ソリューションはむしろ次のとおりです。

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

ProTip™: を使用しないでくださいnew Array()。配列リテラルを使用してください。たとえば、次のようになります。

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

次のように記述します。

var arr = ['Hello', 'world!'];
于 2012-07-29T23:58:08.790 に答える
1

ただのコメント:

それ以外の:

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

} else {
   current += 1;
} 

できるよ:

current = ++current % banners.length;
于 2012-07-30T02:30:31.893 に答える