【发布时间】:2014-04-07 22:08:37
【问题描述】:
我创建了一个非常基本的 jQuery 下拉菜单。问题是,当您将鼠标悬停在下拉菜单上然后鼠标悬停然后再次快速鼠标悬停时,它会暂停但 UL 高度会发生变化?我猜它与 stop() 有关,但我无法纠正它。
下面的jQuery:
$(document).ready(function () {
$('.HeaderNav > li').hover(function () {
$('ul', this).stop().slideDown(300);
}, function () {
$('ul', this).stop().slideUp(300);
});
$('.HeaderNav li:has(> ul)').addClass('HasChild');
$('.HeaderNav li:has(> ul)').addClass('Dropdown');
$('li.Dropdown ul li').on('mouseover', function () {
$(this).parent().prev().addClass('Active');
}).on('mouseout', function () {
$(this).parent().prev().removeClass('Active');
});
});
我为说明目的创建了一个小提琴http://jsfiddle.net/JtYA2/1/
任何帮助/建议将不胜感激:)
【问题讨论】:
-
当然,如果是 CSS 造成的?
-
您是否尝试过删除 .stop() - 这似乎为我解决了您的问题。
-
谢谢尼克,我知道这确实有效,但我在那里停下来的原因是为了阻止 ul 上下滑动几次,因为你快速将鼠标悬停在它上面几次。
标签: javascript jquery html css