2012-09-20 35 views
0
var switchTabs = function(index, el) { 
      //alert("Call SwitchTabs"); 

      ribbon.slideTo(index); 
      ribbon.currentSlideIndex = parseInt(index, 10); 

      //console.log(ribbon.currentSlideIndex); 

      dojo.query('.ibm-slider-wrapper #ibm-thumb-slider-tabs li.ibm-active').removeClass('ibm-active'); 
      dojo.query(el).addClass('ibm-active');  //applies class to current active li 
      //fixTabHeight(index == 4); 
     }  

這個自動滾動的下面部分運行,並不停止1索引在同一時間。它直接跳到6,所以我的滑塊從0移到6位。我希望它在8秒後每次移動1個。for循環不停止在每個索引

如何讓它停止每個索引並運行swapTabs(a,b);然後觸發autoScroll內的索引變量增量?

我試過使用setInterval(),但它仍然按我想要的方式運行。理想情況下,我想爲每個索引使用Switch語句,並在setInterval內觸發swapTabs,以便我可以管理單個索引鍵的計時器。任何幫助,高度讚賞。

var autoScroll = function(){    
      //alert("Inside AutoScroll"); 
      //var tabCount = $('.ibm-slider-wrapper #ibm-thumb-slider-tabs li'); 
       for(var i = 0; i < 6; i++) { 
        var tabsIndex = $('.ibm-slider-wrapper #ibm-thumb-slider-tabs li a'); 
         switchTabs(parseInt(tabsIndex[i].getAttribute('rel'), 10), tabsIndex[i].parentNode); 
         console.log(tabsIndex[i]); 
        } 
     } 

     autoScroll(); 

回答

0

使用setTimeout和具備的功能調用自身:

var i = 0, interval = 8000, iterations = 6; 

var autoScroll = function(){ 

    // function body here 

    i++; 
    console.log("Iteration #" + i); 
    if (i < iterations) { 
     setTimeout(autoScroll, interval); 
    } 
} 

// start first run 
autoScroll(); 
+0

謝謝dbaseman!我想知道,如果用戶點擊了autoScroll應該暫停的標籤,是否可以添加暫停,並且如果用戶在8秒內沒有與任何其他標籤進行交互,它應該從當前標籤位置選取位置。 – Vish

0

你的代碼只是從指數0到5快速連續(彼此毫秒內)和瀏覽器可能不顯示直到腳本在索引6處結束爲止。

如果您希望它停止並顯示每個選項卡,則需要使用類似setTimeout()之類的內容,並在每次定時器啓動時提前一個選項卡。

(function() { 
    var indexCntr = 0; 
    var tabsIndex = $('.ibm-slider-wrapper #ibm-thumb-slider-tabs li a'); 
    function autoScroll() { 
     if (indexCntr < 6) { 
      switchTabs(parseInt(tabsIndex[index].getAttribute('rel'), 10), tabsIndex[i].parentNode); 
      ++indexCntr; 
      setTimeout(autoScroll, 5000); // set the proper delay time here 
     } 
     } 

     autoScroll(); 
})(); 
+0

謝謝!您的幫助!我真的很感激你花時間:) – Vish