1

クラス「ブログリンク」との一連のリンクがあります。

それらにはクリック イベントが関連付けられていますが、この時点では関係ありません。それらを循環させて、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 に答える