我以前经常做这些技巧。
只是延迟不起作用,您必须完成的是一个计时器变量以及一个状态,说明它是否被悬停。
它有点肮脏,但这是工作示例,我删除了一些无效的 html 并添加了更多功能。
http://jsfiddle.net/L48VL/1/
var hideTimer;
var Hovering = false;
function HideFixture()
{
if(!Hovering)
{
$('#nav li.matches > ul').stop().slideUp(50);
$('ul.fixture-list').slideUp(50);
}
}
function ShowSub()
{
clearTimeout(hideTimer);
$('.fixture-list').show();
}
然后在悬停时,我们这样做
$('#nav li').hover(
function () {
//show its submenu
Hovering = true;
clearTimeout(hideTimer);
$('#nav li.matches > ul.first').stop().slideDown(100);
},
function () {
//hide its submenu
Hovering = false;
hideTimer = setTimeout(HideFixture,300);
//$('ul.fixture-list').removeAttr('style');
}
);
希望能帮助到你 :)