每15秒运行一次jquery函数

时间:2014-08-19 15:33:43

标签: javascript jquery setinterval

我想每15秒运行一次功能,但我的setInterval不能正常工作,我也不知道为什么...这个功能只调用一次...

$(document).ready(function(){

param = new Object();
param['menu_hover_time'] = 5000;
    function hoverMenuAnimate(){

    if(param['menu_hover_flag']) 
    {

      $('.menu-item-423').delay(param['menu_hover_time']).queue(function() {
        $(this).trigger('click');

        $('.menu-item-3704').delay(param['menu_hover_time']).queue(function() {
          $(this).trigger('click');

          $('.menu-item-424').delay(param['menu_hover_time']).queue(function() {
            $(this).trigger('click');

            $('.menu-item-422').delay(param['menu_hover_time']).queue(function() {
              $(this).trigger('click');
            });

          });

        });        

      });
    }
  }

  setInterval(hoverMenuAnimate(),15000) 

});

谢谢你的帮助。 最好的问候,

修改

问题是.queue():

/* Animated menu */
  function hoverMenuAnimate(){

    if(param['menu_hover_flag']) 
    {

      setTimeout(function(){
        if(!param['menu_hover_flag'])return;
        $('#menu-1 nav#site-navigation .menu-item-422').css('background', '#f0f2f5').children('a').css('color', '#204056');
        $('.menu-item-423').css('background', '#e5251e').children('a').css('color', '#fff');
        $('#submenu-container-1').html(($('.menu-item-423').children('ul.sub-menu').html()));
        $('#submenu-container-1').css('float', 'right').css('marginRight', '110px');

        setTimeout(function(){
        if(!param['menu_hover_flag'])return;
          $('#menu-1 nav#site-navigation .menu-item-423').css('background', '#f0f2f5').children('a').css('color', '#204056');
          $('.menu-item-3704').css('background', '#e5251e').children('a').css('color', '#fff');
          $('#submenu-container-1').html(($('.menu-item-3704').children('ul.sub-menu').html()));
          $('#submenu-container-1').css('float', 'right').css('marginRight', '110px');

          setTimeout(function(){
            if(!param['menu_hover_flag'])return;
            $('#menu-1 nav#site-navigation .menu-item-3704').css('background', '#f0f2f5').children('a').css('color', '#204056');
            $('.menu-item-424').css('background', '#e5251e').children('a').css('color', '#fff');
            $('#submenu-container-1').html(($('.menu-item-424').children('ul.sub-menu').html()));
            $('#submenu-container-1').css('float', 'right').css('marginRight', '110px');
            if(!param['menu_hover_flag']){return;}

            setTimeout(function(){
              if(!param['menu_hover_flag'])return;
              $('#menu-1 nav#site-navigation .menu-item-424').css('background', '#f0f2f5').children('a').css('color', '#204056');
              $('.menu-item-422').css('background', '#e5251e').children('a').css('color', '#fff');
              $('#submenu-container-1').html(($('.menu-item-422').children('ul.sub-menu').html()));
              $('#submenu-container-1').css('float', 'right').css('marginRight', '110px');

              }, param['menu_hover_time']);
            }, param['menu_hover_time']);
          }, param['menu_hover_time']);
        }, 1000);
    }
  }

  hoverMenuAnimate();

  setInterval(function(){ 
    hoverMenuAnimate();
  }, (4*param['menu_hover_time']));

谢谢大家的帮助!

1 个答案:

答案 0 :(得分:3)

使用setInterval接受延迟后执行的功能。当您使用()时,您正在调用它。只需将函数引用传递给setInterval

使用

setInterval(hoverMenuAnimate,15000); //Notice removed () from here