2010-11-01 77 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