所以我设法为一个效果很好的菜单创建了一个 setTimout slideUp/Down 函数 - 但在某些情况下,当用户将鼠标悬停在链接上时,它会快速上下滑动 - 我知道这个问题很典型,但我有尝试不同的事情没有成功。
这是一个工作演示 - 您可以查看是否将鼠标悬停在链接上,该功能会发疯 http://jsfiddle.net/eA2HL/2/
jQuery('.nav.mainmenu > li').each(function() {
var t = null;
var $this = jQuery(this);
var result = jQuery('#result');
$this.hover(function() {
t = setTimeout(function() {
if($this.find('ul').length > 0) {
result.slideDown(200, function() {
if($this.is(':visible')) {
$this.find('ul').show();
}
});
}
t = null;
}, 300);
}, function() {
if (t) {
clearTimeout(t);
t = null;
} else {
$this.find('ul').hide(0);
result.slideUp(333, function() {
$this.find('ul').hide(0);
});
}
});
});