每15秒运行一次jquery函数

Run jquery function every 15 seconds

本文关键字:一次 jquery 函数 15秒 运行      更新时间:2023-09-26

我想每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']));

谢谢大家的帮助

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

使用

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