我正在尝试使用CSS实现世界上最简单的Dropdown,并希望使用jQuery为它设置一些动画。但是jQuery中的“悬停”功能使得下拉列表一旦离开触发器元素就会消失(ul#menu li a),因此您无法从下拉列表中选择任何内容。
您可以在此处查看代码和相关问题: http://jsfiddle.net/Xx2Z7/
我正在尝试所有内容并在网上搜索,但发现其他许多人都遇到了这个问题,但没有一个解决方案适合我,我正在寻找最简单,最清晰的代码。
感谢。
答案 0 :(得分:2)
这是:
基本上,我改变了你的js事件,现在只能通过你的li元素的mouseenter和mouseleave来控制动画。 li包含子菜单,因此即使您离开链接所在的区域,子菜单仍将保持可见。
$(document).ready(function() {
// Menus
$('ul.menu').hide();
$('ul#main-nav li').mouseenter(function() {
$('ul.menu', this).animate({opacity: 'show'}, 'slow');
});
$('ul#main-nav li').mouseleave(function() {
$('ul.menu', this).animate({opacity: 'hide'}, 'fast');
});
});
答案 1 :(得分:1)
答案 2 :(得分:0)
您在<a>
上触发了悬停,因此当鼠标移出<a>
时,hide()会触发。
$(document).ready(function() {
// Menus
$('ul.menu').hide();
$('ul#main-nav li').hover(function() {
$(this).find('ul.menu').animate({opacity: 'show'}, 'slow');
}, function() {
$(this).find('ul.menu').animate({opacity: 'hide'}, 'fast');
});
$('ul.menu').mouseenter(function() {
$(this).show();
});
$('ul.menu').mouseleave(function() {
$(this).hide();
});
});