2013-10-21 50 views
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(); 
}); 

Fiddle

回答

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(); 
}); 

希望幫助。

+0

如果需要保留最後一張圖片,請在淡入淡出前將代碼(提供Gal V)放入淡入淡出函數中。 – melc