1

私は、fadeInとfadeOutオプションで別の画像を追加しようとしました. 現在、そのスクリプトは継続的にループしています。しかし、最後の画像とアラートが終了したら、ループを停止させたいと思います。それでおしまい。ループの終了を警告するためにこれを行う方法がわかりません。

$('document').ready(function() {
    var $imgs = $('#slideshow > img'), current = 0;

    var nextImage = function() {
        if (current >= $imgs.length) current = 0;
        $imgs.eq(current++).fadeIn(function() {
            $(this).delay(3000).fadeOut(nextImage);
        })
    };
nextImage();
});

フィドル

4

1 に答える 1

3

置き換える必要があります:

if (current >= $imgs.length) current = 0;

と:

if (current >= $imgs.length) { 
    alert('end of images'); 
    return false; 
}

return false;すぐにメソッドを終了します。

最終的なコードは次のようになります。

$('document').ready(function() {
    var $imgs = $('#slideshow > img'), current = 0;

    var nextImage = function() {
        if (current >= $imgs.length) {
            alert('End of images');
            return false;
        }
        $imgs.eq(current++).fadeIn(function() {
            $(this).delay(3000).fadeOut(nextImage);
        })
    };
    nextImage();
});

それが役立つことを願っています。

于 2013-10-21T08:59:17.107 に答える