2014-09-12 126 views
0

我想弄清楚如何設置我的滑塊停止2循環後。用下面的代碼處理這個問題的最佳方式是什麼?我應該將長度存儲在一個變量中進行計數,並設置一個條件來查看案例是否匹配並停止?有什麼想法嗎?2次循環後幻燈片停止?

var slider = $(".box .slide"); 
var slideIndex = -1; 

function showNextSlide() { 
    ++slideIndex; 
    slide.eq(slideIndex % slide.length) 
     .fadeIn(700) 
     .delay(4000) 
     .fadeOut(700, showNextSlide); 
} 

showNextSlide(); 
+0

調用方法在一個循環! – zod 2014-09-12 19:39:21

+0

@zod,這是一個遞歸函數調用 – naomik 2014-09-12 19:41:07

+0

把一個if條件裏面的方法然後 – zod 2014-09-12 19:41:30

回答

0

您可能可以在showNextSlide中應用條件語句。

var numSlides = 123; // define or get the number of slides you have here 

function showNextSlide() { 
    if (slideIndex < 2* numSlides) { 
     ++slideIndex; 
     slider.eq(slideIndex % slider.length) 
      .fadeIn(700) 
      .delay(4000) 
      .fadeOut(700, showNextSlide); 
    } 
} 
2

我認爲你有一個錯字這裏,你只需要更新的slide實例slider

沒有理由使用if陳述由其他答案/評論建議。

var slider = $(".box .slide"); 
var slideIndex = -1; 

function showNextSlide() { 
    ++slideIndex; 
    slider.eq(slideIndex % slider.length) 
     .fadeIn(700) 
     .delay(4000) 
     .fadeOut(700, showNextSlide); 
} 

showNextSlide(); 

jsfiddle demo

+0

也許你應該特別提到他有一個錯字,不是嗎? (因爲需要一些時間才能看到差異) – Yang 2014-09-12 19:47:33

+0

@bad_boy你的個人資料有什麼問題? – naomik 2014-09-12 19:51:39

+0

沒有什麼錯:P只是陳述自己的意見:D(編輯+1) – Yang 2014-09-12 19:57:12