在jquery中停止父函数时阻止回调被停止?

时间:2011-01-27 04:03:41

标签: jquery animation callback jquery-callback

它有点像这样:

$("example").hover(function(){
        ("example").stop().show(/*More Code*/, callback());
    }, function(){
        ("example").stop().hide(/*More Code*/, callback());
    }
)

因此,如果鼠标在第一个动画完成之前离开该区域,它将停止所有动画,并跳过回调。有没有办法使用stop()并仍然执行回调函数?

1 个答案:

答案 0 :(得分:1)

使用定时在动画结束时触发的setTimeout而不是回调。

$("example").hover(function(){
        $("example").stop().show(1000);
        setTimeout(function() { /* do something */ }, 1000);
    }, function(){
        $("example").stop().hide(1000);
        setTimeout(function() { /* do something */ }, 1000);
    }
);

另一个选择是使用.stop(true,true)而不是.stop()

清除队列,将动画发送到最后,然后触发回调。

$("example").hover(function(){
        $("example").stop(true,true).show(1000);
    }, function(){
        $("example").stop(true,true).hide(1000);
    }
);