我有一个列表,当div悬停在右边时会弹出一个列表。我想使用jqueries slideUp / Down来显示和隐藏列表,这些列表大部分时间都在工作。但有时功能会反复触发。不断开启和关闭。我不知道为什么会这样。有什么想法吗?
继承我的代码:
$(myDiv).hover(
function () {
$('ul.list_menu').slideDown('medium');
},
function () {
$('ul.list_menu').slideUp('medium');
}
);
答案 0 :(得分:3)
尝试一些stops
$(myDiv).hover(function () {
$('ul.list_menu').stop(true, true).slideDown('medium');
},function () {
$('ul.list_menu').stop(true, true).slideUp('medium');
});
答案 1 :(得分:1)
你必须向我们展示你的HTML以确定发生了什么,但是如果滑动菜单的行为导致鼠标不再在div上面,那么它将自动“取消悬停”并触发菜单关闭,然后当它关闭时,它将再次悬停,并在一些鼠标位置前后循环。
解决这个问题的方法是改变HTML,这样放下菜单就不会与使其下降的鼠标位置重叠,也不会使用不同的机制来关闭菜单,而不是在你的div上进行de-hover
要解决快速悬停和移除鼠标的问题(虽然这听起来不是您所描述的问题),但您还应该使用.stop(true)
取消之前的动画,如下所示:
$('ul.list_menu').stop(true).slideDown('medium');