【问题标题】:proper way to write this timed jquery function编写此定时 jquery 函数的正确方法
【发布时间】:2012-12-13 12:47:16
【问题描述】:

我希望此功能每 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);

【问题讨论】:

    标签: jquery timer settimeout setinterval


    【解决方案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);
    

    【讨论】:

    • 嗯几乎可以工作。我认为这个数字可能需要转换为强?
    • 你不应该这样做。运行此代码时是否遇到任何错误?
    • 酷,行得通。但它在开始时仍然有 16 秒的延迟。我希望它在 4 秒后启动...
    【解决方案2】:
    $(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);
    });
    

    【讨论】:

    • 谢谢,但这给出了一个错误“未捕获的类型错误:对象#没有方法'延迟'”
    • 嘿伙计,我检查了这个代码十多次,它没有显示任何错误!
    • 很抱歉,但这对我不起作用 :( 非常感谢您的帮助
    猜你喜欢
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2017-04-20
    • 2010-11-22
    • 1970-01-01
    • 2012-05-03
    相关资源
    最近更新 更多