我想每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']));
谢谢大家的帮助!
答案 0 :(得分:3)
使用setInterval
接受延迟后执行的功能。当您使用()
时,您正在调用它。只需将函数引用传递给setInterval
。
使用
setInterval(hoverMenuAnimate,15000); //Notice removed () from here