当光标仍在元素上时,Jquery mouseout会触发

时间:2013-11-15 16:40:17

标签: javascript jquery

提前感谢所有愿意提供帮助的人。我的谜语是jQuery中的mouseout效果 - 我正在尝试构建一个能够无限期地在容器内上下移动元素的函数。悬停时,移动应停止并保持停止,直到光标完全离开元素。但是,当鼠标悬停事件触发时,鼠标悬停事件会立即触发,当光标仍在元素上时,动画会中断。

这是简单的HTML:

<div id="container">
  <div class="element">Some text</div>
  <div class="element">Some other text</div>
  <div class="element">Some more text</div>
</div>

移动元素绝对由javascript定位在顶部元素上并向下和向上移动,这是jsfiddle上的示例

有没有其他人必须处理这件事?感谢

1 个答案:

答案 0 :(得分:0)

我认为您需要在动画功能之外拉出mouseenter和mouseout事件。每次调用animate函数时,都会向每个元素添加另一个鼠标事件。这导致它在您鼠标移出时多次调用您的动画功能。

这是一个fiddle,我添加了一个计数器来查看调用动画函数的次数。

var counter = 0;
function animate(el, dir) {
   $("#count").val(counter);
   counter++;

鼠标反复出现几次,你可以看到它每次鼠标移动时都会混合动画调用。