我正在尝试添加悬停效果来显示/隐藏下拉菜单。问题是当我将鼠标悬停在菜单显示但又消失的链接上时。
$(".hoverli").hover(
function () {
$('ul.file_menu').slideDown('medium');
},
function () {
$('ul.file_menu').slideUp('medium');
}
);
请在此处查看演示:fiddle。
你能告诉我我在代码中缺少什么吗?
谢谢
原因是,当你在上面时,.file_menu
它就不再存在了hover
。所以,一个小的改变就可以解决。
$(document).ready(function () {
$("#button").hover(
function () {
$('ul.file_menu').slideDown('medium');
},
function () {
$('ul.file_menu').slideUp('medium');
}
);
});
试试这个:
$(".hoverli").hover(function () {
$('ul.file_menu').slideDown('medium');
});
$('ul.file_menu').bind('mouseleave', function(){
$('ul.file_menu').slideUp('medium');
});
发生这种情况是因为 ul 不在您的锚标记内,所以当您悬停 ul 时,您实际上是在触发锚的“out”事件。
这是我的做法:
$(document).ready(function() {
var tim;
$(".hoverli, .file_menu").on({
mouseenter: function() {
clearTimeout(tim);
$('ul.file_menu').slideDown('medium');
},
mouseleave: function() {
tim = setTimeout(function() {
$('ul.file_menu').slideUp('medium');
}, 300);
}
});
});