Javascript 在当前触发期间停止jQuery事件触发?
我真的很生气!基本上,我有一个div,它最终会有一个小菜单,当你将鼠标移到另一个div上时,这个小div会向下移动到视图中并变得可见(mouseout导致相反的结果) 这一切都很好地工作,除了如果我很快地mouseover和mouseout,就会出现闪烁(我假设jQuery队列正在追赶) 那么基本上,有没有办法阻止这种情况发生?您是否可以告诉jQuery类似“此时,在当前队列完成之前,不要对任何其他内容进行排队” 我对jQuery还是比较陌生的。我下面的代码看起来应该可以工作,但似乎并没有停止添加队列!请原谅在这种情况下愚蠢地使用x++/y++是完全不必要的,这只是我在这里发布之前做的最后一件事 有人能帮忙吗Javascript 在当前触发期间停止jQuery事件触发?,javascript,jquery,queue,Javascript,Jquery,Queue,我真的很生气!基本上,我有一个div,它最终会有一个小菜单,当你将鼠标移到另一个div上时,这个小div会向下移动到视图中并变得可见(mouseout导致相反的结果) 这一切都很好地工作,除了如果我很快地mouseover和mouseout,就会出现闪烁(我假设jQuery队列正在追赶) 那么基本上,有没有办法阻止这种情况发生?您是否可以告诉jQuery类似“此时,在当前队列完成之前,不要对任何其他内容进行排队” 我对jQuery还是比较陌生的。我下面的代码看起来应该可以工作,但似乎并没有停止添
var x = 0;
var y = 0;
function hideme()
{
if (x == 0 && y == 0)
{
x++;
$(unimenu).fadeOut('slow');
$(unimenu).animate({top: "-40px" }, {queue: false, duration: 'slow'});
x = 0;
}
}
function showme()
{
if (y == 0 && x == 0)
{
y++
$(unimenu).fadeIn('slow');
$(unimenu).animate({top: "40px" }, {queue: false, duration: 'slow'});
y = 0;
}
}
不,不能延迟事件,因为这些事件是由浏览器而不是jquery引发的。相反,您可以使用
queue
属性将动画放入队列。队列将仅在上一个动画完成后运行动画
在本页中搜索
队列:也许可以查看hoverIntent插件 我想你要找的是stop
<代码>停止
将停止以前的动画。如果在开始下一个动画之前停止上一个动画,则可以避免将导致问题的大量动画排入队列
您提到jquery悬停页面上的演示有这个问题。请查看该演示的修改版,并单击“停止”。请注意,它如何没有问题: