Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在当前触发期间停止jQuery事件触发?_Javascript_Jquery_Queue - Fatal编程技术网

Javascript 在当前触发期间停止jQuery事件触发?

Javascript 在当前触发期间停止jQuery事件触发?,javascript,jquery,queue,Javascript,Jquery,Queue,我真的很生气!基本上,我有一个div,它最终会有一个小菜单,当你将鼠标移到另一个div上时,这个小div会向下移动到视图中并变得可见(mouseout导致相反的结果) 这一切都很好地工作,除了如果我很快地mouseover和mouseout,就会出现闪烁(我假设jQuery队列正在追赶) 那么基本上,有没有办法阻止这种情况发生?您是否可以告诉jQuery类似“此时,在当前队列完成之前,不要对任何其他内容进行排队” 我对jQuery还是比较陌生的。我下面的代码看起来应该可以工作,但似乎并没有停止添

我真的很生气!基本上,我有一个div,它最终会有一个小菜单,当你将鼠标移到另一个div上时,这个小div会向下移动到视图中并变得可见(mouseout导致相反的结果)

这一切都很好地工作,除了如果我很快地mouseover和mouseout,就会出现闪烁(我假设jQuery队列正在追赶)

那么基本上,有没有办法阻止这种情况发生?您是否可以告诉jQuery类似“此时,在当前队列完成之前,不要对任何其他内容进行排队”

我对jQuery还是比较陌生的。我下面的代码看起来应该可以工作,但似乎并没有停止添加队列!请原谅在这种情况下愚蠢地使用x++/y++是完全不必要的,这只是我在这里发布之前做的最后一件事

有人能帮忙吗

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悬停页面上的演示有这个问题。请查看该演示的修改版,并单击“停止”。请注意,它如何没有问题: