我有某种变量超出范围问题或其他东西。在下面的函数中,我根据鼠标是进入还是退出来创建或清除超时。不过,似乎即使创建了超时,它在重新进入时也会返回 undefined 。不知道我在这里做错了什么,感谢您的帮助!
JavaScript:(具体问题else
在第 35 行的条件范围内
var navLinks = $('nav li.sub');
navLinks.mouseenter(function(){
console.log('hovering on link');
var thiis = $(this),
subList = thiis.find('ul'),
autoClose;
if (!thiis.hasClass('out')){
console.log('isnt out');
/* Link */
thiis
/* Show submenu when entering link */
.addClass('out')
/* Hide submenu when exiting link */
.mouseleave(function(){
autoClose = setTimeout(function(){
thiis.removeClass('out');
}, 1000);
console.log('exiting link: timeout active', autoClose);
});
} else {
console.log ('is out', autoClose);
if (autoClose){
console.log('is out: clear timeout');
clearTimeout(autoClose);
}
}
});