我在 SO 上看到过其他类似的问题,但答案并不是我想要的。我对下面代码的问题是关于变量hide。
在它的当前形式下,第一个悬停函数将看不到隐藏,但我不想在更高的范围内声明它,因为它在那里没有用处。另外,在更高的范围内声明它需要为每个 li 创建一个不同的变量。
保持这个变量包含这两个函数之间的超时的解决方案是什么?
$('li').hover(function() {
clearTimeout(hide);
$('.menu', this).show();
}, function() {
var menu = $('.menu', this);
var hide = setTimeout(function() {
menu.hide();
}, 500);
});