我想做一些我认为很简单但我需要帮助的东西。不能在jquery里面定义一个函数? ... undefined
一个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的全部原因是应用效果基本show动画是不可用之外的jQuery AHHH帮助,感谢
这是因为字符串'“mnuDown()”'在全局范围内被评估。虽然'mnuDown'不是全球性的。 –
通常,最好在'setTimeout'中使用函数引用,而不是代码字符串。使用'setTimeout(mnuDown,1000)',** not **'setTimeout(“mnuDown()”,1000)'。这也解决了你目前的问题。 – apsillers
_“无法在jQuery中定义函数?”_ - Felix的链接会给你答案,但请注意,这与你是否使用jQuery无关,在JavaScript中这只是正常的,正确的行为。 – nnnnnn