0

シンプルで簡単なもの。

div内で画像を回転させ、配列の最後に達したときに最初の画像に戻ろうとしています。誰かが私がここのコードのどこで間違っているのかを指摘するのを手伝ってもらえますか?2番目の画像に到達すると、インデックスがゼロに戻って配列の最初の画像から再開することはないようです。

var images = new Array ('.advert1', '.advert2');
var index = 0;

function rotateImage()
{

$(images[index]).fadeOut('fast', function()
{
    index++;        

    $(images[index]).fadeIn('fast', function()
    {

        if (index == images.length-1)
        {
            index = 0;
        }

    });
});
}

これは、5秒ごとにsetIntervalで呼び出されています。

 setInterval (rotateImage, 5000);

どうもありがとう!

4

1 に答える 1

1

インデックスを使用する前に、インデックスが範囲外になっていないかどうかを確認する必要があります。

function rotateImage()
{

  $(images[index]).fadeOut('fast', function()
   {
       index++;
       if (index == images.length)
           {
               index = 0;
           }
       $(images[index]).fadeIn('fast');
   });
}

これは、関数が呼び出されてindex1だった場合、2になり、フェードインしようとしてimages[2]失敗するためです...

于 2010-11-11T10:54:08.483 に答える