1

この関数を 4 秒ごとに開始したい。それらを配列に入れて、この方法ではなく4秒ごとに呼び出す方法はありますか。また、この方法は実際に開始するまでに 16 秒の遅延があります。前もって感謝します。

setInterval(function() {
     setTimeout(function () {
         $j('.menu2').trigger('click');
         }, 0000);

         setTimeout(function () {
         $j('.menu3').trigger('click');
          }, 4000);

         setTimeout(function () {
         $j('.menu4').trigger('click');
          }, 8000);

         setTimeout(function () {
         $j('.menu1').trigger('click');
          }, 12000);

}, 16000);
4

2 に答える 2

1

これを試してみてください

setInterval(function () {
        var time = 0;
        for (i = 1; i < 5; i++) {
            setTimeout(function () {
                $j('.menu' + i).trigger('click');
            }, time);
            time += 4000;
        }
    }, 16000);

アップデート

http://jsfiddle.net/6NwLG/1/

setInterval(function () {
        var time = 0;
        for (i = 1; i < 5; i++) {

            test(time, i);
            time += 4000;
        }
        function test(time, id) {
            setTimeout(function () {
                $('.menu' + id).click();
            }, time);
        }
    }, 16000);
于 2012-12-13T12:52:17.957 に答える
0
$(document).delay(12000, function() {
    var interval = setInterval( function() {
       time = 2000;
       m = 1;
        for( i =0; i < 5; i++) {
       setTimeout( function() {
           $('.menu'+m).trigger('click');
           time = time+2000;
           m = m+1;
       }, time);
    }
    }, 4000);
});

</p>

于 2012-12-13T13:08:46.507 に答える