jquery.stop()不工作
我正在尝试构建一个菜单,其中默认情况下只显示第一个项目,当您将鼠标悬停在该菜单上时,其余项目将滑出,并在鼠标离开时再次隐藏。它大部分工作正常,但如果鼠标在滑出之前退出,则不会调用隐藏函数。我以为jquery.stop()不工作,jquery,jquery-animate,Jquery,Jquery Animate,我正在尝试构建一个菜单,其中默认情况下只显示第一个项目,当您将鼠标悬停在该菜单上时,其余项目将滑出,并在鼠标离开时再次隐藏。它大部分工作正常,但如果鼠标在滑出之前退出,则不会调用隐藏函数。我以为stop()应该会处理这个问题,但似乎没有任何影响 $(function(){ $("#menubar").children(".breadcrumbs").children("li + li").hide(); $("#menubar .breadcrumbs").hover(func
stop()
应该会处理这个问题,但似乎没有任何影响
$(function(){
$("#menubar").children(".breadcrumbs").children("li + li").hide();
$("#menubar .breadcrumbs").hover(function() {
$(this).children("li + li").stop().show("slide", {}, 'slow');
}, function() {
$(this).children("li + li").stop().hide("slide", {}, 'slow');
});
});
有人知道我做错了什么吗?STOP()函数有参数,(真,真,(假,假)你试过修改这些参数来改变想要的效果吗?我不是最大的动画天才,但我打赌这与你在每个处理程序中重建jQuery对象有关。试试这个:
$(function(){
var children = $('#menubar .breadcrumbs').children('li + li');
children.hide();
$("#menubar .breadcrumbs").hover(function() {
children.stop().show("slide", {}, 'slow');
}, function() {
children.stop().hide("slide", {}, 'slow');
});
});
edit-@melee在评论中指出,这种特殊设置的行为并不总是稳定的。如果您小心地将鼠标移向“Home”(主页)的右边缘(靠近“>”角色),则有时动画会有点反常。原因尚不清楚,但浏览器只是对元素应该呈现在哪里感到非常困惑。停止函数的定义是
.stop( [ clearQueue ], [ jumpToEnd ] )
官方网站去
clearQueue:一个布尔值,指示是否
也可以删除排队的动画。
默认为false
jumpToEnd:一个布尔值,指示是否
完成当前动画的步骤
马上。默认为false
这是来自我尝试过不同的组合,但似乎没有任何区别。不确定这是针对JSFIDLE还是Firefox的,但当你将鼠标放在
主页>
胡萝卜上时,它会变得非常疯狂。在Chrome上也发生过,但我无法重现。我认为这是幻灯片ani的问题-我在FF4中测试了它:)我认为这是因为在特定的点上,当li滑入时,你的鼠标在这些元素上移动,因此当它们通过时,它会重新触发幻灯片事件,导致循环。我想你需要合并一些回调和变量来让它完美地工作。我有一个类似的问题,这对我来说很有效。我想知道为什么;通常情况下,执行$(“#stuff”).hide(200)$停止
,但是如果使用子项()
,jQuery显然会忘记集合。