我有一个基本的下拉列表,我在悬停时使用jQuery进行slideUp和slideDown。
我需要在第一个悬停时下拉到slideDown,然后每个悬停。目前,第一个悬停始终被忽略。 slideDown在第二次悬停之前不会生效。
https://jsfiddle.net/tbc3rkk3/2/
请注意:
已存在a very similar question on StackOverflow。
所选答案表明,通过CSS,我将ul
设置为display:none;
,但这已经在我的案例中应用了。
为什么第一个悬停/ slideDown被阻挡?
答案 0 :(得分:1)
为什么不使用slideToggle
?
$("#language").on('click', function () {
$(".language_dropdown").slideToggle("slow");
});
注意:建议不要在悬停时执行此功能,因为它会更频繁地触发,并且手机和平板电脑上的用户无法正确处理。点击是一种更好的方法。请参阅我更新的JSFiddle。
答案 1 :(得分:0)
您必须删除此部分才能使动画正常工作:
#language:hover .language_dropdown {
display: block;
}
注意:您还可以添加stop()
功能,以防止多个悬停无用的动画。
$("#language").hover(function () {
$(".language_dropdown").stop().slideDown("slow");
}, function() {
$(".language_dropdown").stop().slideUp("slow");
});