我写了一个自定义下拉菜单,问题是,如果你将鼠标悬停在快速上,它会疯狂地开始上下移动。以下是一个示例:http://www.norrispenrose.com/
这是我的jQuery代码:
jQuery(document).ready(function(){ // menu system
jQuery('#mainMenu li').hover(function() {
jQuery(this).corner('5px');
});
jQuery('#mainMenu li').hover(function() {
if(jQuery(this).children().is('ul'))
{
jQuery(this).uncorner();
jQuery(this).corner('top 5px');
jQuery('ul', this).slideDown('fast');
jQuery('ul', this).uncorner();
jQuery('ul', this).corner('tr br bl 5px');
jQuery(this).addClass('dropHover');
}
else
{
//Do nothing
}
}, function() {
jQuery('ul', this).slideUp('fast');
jQuery(this).delay(200).queue(function () {
jQuery(this).removeClass('dropHover');
jQuery(this).dequeue();
});
jQuery(this).uncorner();
});
});
任何帮助将不胜感激!
答案 0 :(得分:2)
在slideUp
和slideDown
使用jQuery stop()
方法(docs)清除动画队列之前。例如,从您的代码:
jQuery('ul', this).stop(true, true).slideDown('fast');
答案 1 :(得分:0)
查看HoverIntent plug-in。这应该可以解决你的问题。