我在使用jQuery悬停方法时遇到了一些麻烦。
下面是相关的JavaScript代码:
$("#navigation > li > ul").hide();
$("#navigation > li").hover(
function() {
$(this).children("ul").slideDown(125);
},
function() {
$(this).children("ul").slideUp(125);
}
);
下面是相应的HTML:
<ul id="navigation">
<li><a href="#">Top Level Item #1</a></li>
<li>
<a href="#">Top Level Item #2</a>
<ul>
<li><a href="#">Sub-Menu Item #2-1</a></li>
<li><a href="#">Sub-Menu Item #2-2</a></li>
<li><a href="#">Sub-Menu Item #2-3</a></li>
</ul>
</li>
</ul>
当你将鼠标悬停在顶级项,在它的子菜单(如果有的话)会降下来一个不错的,快速的滑动效果。问题在于,当您快速将鼠标悬停在“菜单”中并将鼠标放在菜单将为止但尚未达到的位置时:菜单将点击鼠标悬停动画的“结束”并跳回到隐藏状态状态,然后重复,直到从下拉菜单中删除鼠标。
如果我理解正确的问题,它尝试使用预建的jQuery菜单插件之一,因为在你的悬停调用中的第二功能(当指针离开匹配元素时调用的那个)在你进入子菜单时被调用。 – inkedmn 2009-10-28 16:35:32
有没有办法防止这种情况发生?我仍然非常新的jQuery,我可以强迫它不“排队”悬停的第二个功能,直到1st完成? – Zack 2009-10-28 16:39:46