2010-11-01 36 views
2

我有一堆選項卡激活不同的內容頁面,我希望它們自動循環直到用戶點擊其中一個頁面。jQuery - 延遲連續遍歷

$("#projects_list ul li a").each(function() { 
activatetab($(this)); 
}); 

所以我想activatetab($(this))要執行每說5000毫秒,一旦最後一個選項卡被激活,它應該從頭再來。可以這樣做嗎?我可以使用像activate_next_tab()這樣的函數,然後在setInterval()中調用它,同時跟蹤哪個選項卡是上次激活的,然後找到下一個選項卡......但這很麻煩。我想這樣做。

感謝

+0

您提到的解決方案可能不是*優雅*,但請記住它仍然是一個解決方案。 jQuery沒有內置定時器或定期執行程序,但有可用的插件。 – 2010-11-01 19:48:59

回答

5

喜歡的東西:

var as = $("#projects_list ul li a"), i = 0, l = as.length; 
setInterval(function(){ 
    activatetab($(as[i++ % l])) 
}, 5000) 

幾點說明:

  • as與所有A標籤
  • i列表中選擇一個jQuery對象是計數器
  • lA標籤數
  • setInterval將重複功能每5000毫秒
  • i++將增加在每次通過櫃檯,並% l將確保你永遠不會超過A
的數量和「旋轉」
+0

謝謝,但這只是繼續激活第一個元素,它不會去第二,第三等。我不知道你在這裏做了什麼,所以我不知道如何解決它。 – 2010-11-01 19:52:23

+0

我忘了一個++,我... – Mic 2010-11-01 19:53:35

+0

謝謝,完美的作品。我仍然不確定你做了什麼,但當我的頭部清理時我會解密它。 :) – 2010-11-01 19:58:30