我正在使用此代码停止同时动画2个元素:
$('#container').find('*').stop(true, true);
最终用户将鼠标悬停在按钮上可以停止动画,在这种情况下,动画在完成后停止(这就是我想要的)。但是,按钮悬停还会启动另一个功能(删除并重新加载元素),如果该功能在动画完成之前运行则会发生冲突。
我认为在上面的代码中使用'after'或'complete'可能会有效,但我无法弄清楚语法是什么。
答案 0 :(得分:0)
我不确定您要实现的目标,但为了使用jQuery检查对象上是否有正在运行/待处理的动画,您可以使用 .promise().done()
例如,这种情况:
var animations_running;
$('#container').promise().done(function() {
animations_running=false;
});
$('#container').on("mouseover",".SomethingInside",function(){
if(animations_running==false){
//...do animations...
animations_running=true;
}
});
您还可以为jQuery动画添加回调函数,如下所示:
$('#container').on("mouseover",".SomethingInside",function(){
if(animations_running==false){
$(this).animate({
left:+=50
},500,function(){
//...this is the callback function...
});
animations_running=true;
}
});