Jquery函数需要首先取消其他函数

时间:2011-09-12 14:32:59

标签: jquery animation

我遇到的问题是我有一个div,其中有三个隐藏的span标签(用作标签)和jquery我使用鼠标悬停功能为其中一个标签设置动画。

我想知道是否有办法停止/取消已经运行的功能。即,如果我快速移动到第二个鼠标悬停事件,动画似乎排队,这意味着当我搬走时,可能仍会出现动画。

理想情况下,新按钮上的鼠标悬停事件会杀死当前正在运行的任何动画。

3 个答案:

答案 0 :(得分:3)

是的,您可以调用.stop()方法来停止匹配元素上的任何正在运行的动画。

http://api.jquery.com/stop/

答案 1 :(得分:3)

是:stop功能。这会停止当前动画。

如果要删除所有当前排队的元素,则必须传递true的第一个参数。如果你想跳到当前动画的结尾(通常是个好主意),你应该传递true的第二个参数。

所以你的电话可能看起来有点像这样:

$('#someEl').mouseenter(function() {
    $(this)
        .stop(true, true) // stop any currently existing animations 
        .animate({        // and then start a new one
            marginLeft: '20px'
        }, 250);
});

答案 2 :(得分:2)

是的,jquery中有一个函数。试试这个:

$('#divId').hover(function() {
$(this).find('#img1').stop(true, true).slideUp();
$(this).find('#img2').stop(true, true).slideDown();
}, function() {
$(this).find('#img1').stop(true, true).slideDown();
$(this).find('#img2').stop(true, true).slideUp();
});