1

我有一系列带有“bloglink”类的链接。

他们有一个与之关联的点击事件——但此时这无关紧要。我正在尝试循环浏览它们并每 X 秒触发一次点击事件。这就是我所在的位置:

$('a.bloglink').each(function(){
    var $bl = $(this);
    setInterval(function(){
        $bl.trigger('click')
    },2000);
})

但它只是一次触发所有这些的点击事件。

有小费吗?

4

2 回答 2

2

你可以这样做:

(​function Loop()​{
    var arry = $("a.bloglink").get();
    var traverse = function(){
        $(arry.shift()).trigger('click');

        if (arry.length)
            setTimeout(traverse, 2000);
    };
    setTimeout(traverse,2000);
})();

你可以在这里看到它的作用:http: //jsfiddle.net/Shmiddty/B7Hpf/

要重新开始,您只需添加一个 else 案例:

(​function Loop()​{
    var arry = $("a.bloglink").get();
    var traverse = function(){
        $(arry.shift()).trigger('click');

        if (arry.length)
            setTimeout(traverse, 2000);
        else
            Loop(); // Do the whole thing again
    };
    setTimeout(traverse,2000);
})();

见这里:http: //jsfiddle.net/Shmiddty/B7Hpf/1/

于 2012-10-10T22:33:06.703 回答
0

创建一个函数来设置计时器以运行您的代码,清除计时器,然后在下一个元素上调用自身......

function processNext($current)
{
    $h = setInterval(function() {
        $current.css('color', 'green');//do your business here
        clearTimeout($h);
        if ($current.next('a.blah').size()>0)
        {
            processNext($current.next('a.blah'));
        }
    }, 750);
}
processNext($('a.blah').eq(0));

见这里:http: //jsfiddle.net/skeelsave/6xqWd/2/

于 2012-10-11T00:13:40.133 回答