如果在jquery .slideDown()动画结束之前Javascript侦听器没有触发

时间:2012-03-12 12:21:41

标签: javascript jquery slidedown

我希望简单一个!

我遇到的问题是我有一个('itemID')。mouseover,它会触发一个菜单框的jquery下拉动画。 问题是如果鼠标在slideDown()amination结束之前离开原始项(在本例中为文本链接),则不会调用.mouseleave函数。

否则工作正常!!

这就是我使用的:( menu14是文本链接,FunctionsMenu3是包含菜单项的隐藏div)

$('#menu14').mouseover(function() {
   $('#FunctionsMenu3').slideDown('fast', function() {
    // Animation complete.
  });
});

$('#FunctionsMenu3').mouseleave(function() {
   $('#FunctionsMenu3').slideUp('fast', function() {
    // Animation complete.
  });
});

在我看来,JS CANT被解雇了,因为它忙着做幻灯片...... 网站可以在http://www.impero-classroom-management.com看到 提前谢谢!!

2 个答案:

答案 0 :(得分:0)

在mouseleave上,尝试.stop()取消当前动画。

$('#menu14').hover(
  function() {
   $('#FunctionsMenu3').slideDown('fast');
  },
  function() {
   $('#FunctionsMenu3').stop().slideUp('fast');
  }
);

答案 1 :(得分:0)

嗯,我最终没有动画下拉动画,只是向上滑动。

不是解决方法,但这是我真正能做到的!!

$('#FunctionsMenu5').mouseleave(function() {
   $('#FunctionsMenu5').slideUp('fast', function() {
    // Animation complete.
  });
});
$('#menu15').mouseover(function() {
   $('#FunctionsMenu5').show();
});