我正在尝试做一些我认为很简单但我需要帮助的事情。
在jquery函数中我想设置一个计时器并从另一个函数中清除它....
(function($){
var mnuTimer;
var mnuDown;
$('.nav-menu .parent').hover(function(){
clearTimeout(mnuTimer);//clear function
$(this).children('.children').slideDown();
$(this).css('background-color','#fff0c8');
},
function(){
function mnuDown(){//set function for timer experation
$(this).children('.children').slideUp('fast');
$(this).css('background-color','transparent');
}
mnuTimer = setTimeout("mnuDown()",1000)//timer
});
})(jQuery);
所以我唯一无法工作的部分是计时器。 “mnuDown”函数未定义。我已经尝试了很多不同的方法来使它工作,除了在jquery“(function($){”之外声明函数之外似乎没有什么是正确的。这不起作用,因为我使用jquery的全部原因是应用在jquery之外不可用的slideUp动画.AHHH帮助,谢谢
答案 0 :(得分:2)
重复this answer:
是的,不是函数的声明是问题,而是[变量]引用它:你没有。相反,setTimeout("mnuDown()",1000)
将评估全局范围内的代码字符串 - 在那里找不到mnuDown
。您需要将函数引用传递给setTimout()
:
mnuTimer = setTimeout(mnuDown,1000); //timer