jQuery通过链接设置超时周期

时间:2011-12-05 10:22:55

标签: jquery

我有一个li,有6个链接。每个链接触发图像的更改并通过AJAX获取内容以显示在页面上的元素中。每个链接都有一个唯一的id。 (例如“linkFirstSlide”,“linkSecondSlide”等)

是否可以设置5秒的计时器,每次迭代触发下一个li链接的点击?

所以说在页面加载时会触发$("#linkFirstSlide").click(),然后在5秒后触发$("#linkSecondSlide").click()直到它结束,然后再返回到开头。

我正在尝试构建旋转木马而不使用旋转木马插件,因为我需要在每次点击时执行大量操作。

干杯

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

// When DOM is ready
jQuery(function($){

    // Select our links
    var $links = jQuery("#linkFirstSlide, #linkSecondSlide, ...");
    var iCurrentLink = 0;

    (function clickNextLink(){

      // Click on current link
      $links.eq(iCurrentLink).click();  

      // Prepare for next one in 5 seconds
      iCurrentLink += 1;
      iCurrentLink %= $links.length;
      setTimeout(clickNextLink, 5000);

    })();

});

我还写了plugin that makes it easier to write asynchronous loops,但jQuery插件网站目前处于离线状态。

答案 1 :(得分:0)

就在我的脑海中,你可以试试这个:

var links = ['#linkFirstSlide', '#linkSecondSlide'];
var max = links.length;
var current = 0;

function slide(){
    var cur = $(links[current]).trigger('click');
    current++;
    if(current>=max)
        current = 0;
}

setInterval(slide,5000);