0

我正在尝试做一些我认为很简单的事情,但我需要一些帮助。

在 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 帮助,谢谢

4

1 回答 1

2

只是重复这个答案

是的,不是函数的声明是问题,而是引用它的[变量]:你没有。相反,setTimeout("mnuDown()",1000)将在全局范围内评估该代码字符串mnuDown-在那里找不到。您需要将函数引用传递给setTimout()

mnuTimer = setTimeout(mnuDown,1000); //timer
于 2012-05-31T00:08:12.257 回答