我正在使用jQuery使用jQuery切换方法切换<div>
的可见性。在mouseenter和mouseleave事件上触发切换,从而创建div在mouseenter上折叠并在mouseleave上折叠的效果。问题是,如果用户将鼠标拖过<div>
几次然后离开<div>
,则div会多次切换。如果用户意外地移动<div>
中的鼠标指针,就会发生这种情况。有没有人知道如何避免这种行为?
感谢名单!
答案 0 :(得分:7)
两件事:
答案 1 :(得分:0)
您可以使用更常见的mouseover
/ mouseout
事件来获取不会因内部鼠标移动而触发的悬停事件。
但是不要在鼠标事件上使用toggle
,如果例如,它很容易出错。鼠标在页面加载时在元素上,或者鼠标离开浏览器(这可以让鼠标离开元素的边界而不触发mouseout
)。具有显示内容的over
的单独功能,以及隐藏它的out
。
更好:只需使用hover()
方法即可用于此目的。
答案 2 :(得分:0)
除了Cletus的正确答案之外,我想指出使用mouseenter
和mouseleave
事件并没有错。诀窍只存在于stop()
方法中,事实上我们仍然可以做到:
$("div.someclass").on("mouseenter", function() {
$("...").stop().fadeIn("slow");
});
$("div.someclass").on("mouseleave", function() {
$("...").stop().fadeOut("slow");
});
Here是一个jsFiddle示例:)