有一个菜单按钮 (#menu_product) 当用户的鼠标悬停在它上面时,菜单会向下滑动 (#about)。但是,它不能检查向上滑动(隐藏)它的条件。逻辑是我需要确保按钮和菜单都没有悬停然后向上滑动。但似乎菜单永远不会向上滑动,如何解决?谢谢
$('#menu_product').live('mouseout',function() {
if (!$('#about:hover')) {
$("#about").slideUp("slow");
}
});
有一个菜单按钮 (#menu_product) 当用户的鼠标悬停在它上面时,菜单会向下滑动 (#about)。但是,它不能检查向上滑动(隐藏)它的条件。逻辑是我需要确保按钮和菜单都没有悬停然后向上滑动。但似乎菜单永远不会向上滑动,如何解决?谢谢
$('#menu_product').live('mouseout',function() {
if (!$('#about:hover')) {
$("#about").slideUp("slow");
}
});
使用以下内容来获得您想要达到的效果
$("#menu_product, #about").hover(
function () {
$("#about").stop();
$("#about").slideDown("slow");
},
function () {
$("#about").slideUp("slow");
}
);
jsfiddle:http: //jsfiddle.net/np67k/
javascript$('#about:hover')
将始终返回一个有效的 jquery 对象,因此将始终为真。
尝试使用类似的东西$('#about').is(':hover')
,因为该.is()
函数返回一个布尔值。http://api.jquery.com/is/
#1 不要使用live
,它已被弃用。
试试这个:
$('#menu_product').on('mouseout',function() {
var $about = $('#about').toggleClass('.hover');
if (!$about.is('.hover')) {
$about.slideUp("slow");
}
});