0

如图所述,怎么去判断一个DOM是否已经调用了slideup方法(已经执行完成了),求代码!!

4个回答

2

if(! $(elememt).is(":animated") ){ //判断元素是否处于动画状态
//如果当前没有进行动画,干点啥
}
if($(elememt).is(":animated") ){ //判断元素是否处于动画状态
//如果正在进行进行动画,则干点啥
}
如果你的元素只有一个动画,可以直接通过判断元素是否处于动画状态。如果有,可以进行马上停止等操作

1

通过is(":animated")判断,是不靠谱的,比如你的元素的动画可能不是sideup方法产生的。
可以使用如下方法:
在调用slideup()方法的时候,给dom添加一个自定义的属性,比如$(selector).attr("hasInvokeSlideUp",true);
然后判断是否调用就好判断了

 if($(selector).attr("hasInvokeSlideUp")){//已经调用
                            
                       
                       }else{//未调用
                           
                       }

如果题主想判断sideup方法是否执行完成,可以看看jquery api,这个方法有一个参数fn,表示在动画完成时执行的函数,每个元素执行一次。参考如下代码:

$(selector).slideUp("fast",function(){ //在动画完成时执行的函数
     .....
 });
0

有时候需要换个思路解决问题,首先你这个问题就没有图!

0

给函数里面设定一个标志 flag 判断

撰写答案