jQuery slideUp()。remove()在移除之前似乎没有显示slideUpanimation

我有这一行的JavaScript,我看到的行为是selectedLi立即消失,没有“滑动”。 这不是我所期望的行为。

我应该怎么做才能让selectedLi LI在被移除之前滑下来?

 selectedLi.slideUp("normal").remove(); 

可能能够解决它通过把调用删除在callback参数slideUp?

例如

 selectedLi.slideUp("normal", function() { $(this).remove(); } ); 

你需要更加明确:不要说“这个”(我同意应该这样做),你应该这样做:

 $("#yourdiv").slideUp(1000, function() { $(this).remove(); }); 

最简单的方法是将slideUp中的“remove()”函数作为其他参数所说的参数调用,例如:

 $("#yourdiv").slideUp("normal", function() { $(this).remove(); }); 

在匿名函数()中调用它是必须的,以防止在slideUp结束之前执行remove()。 另一个同样的方法是使用jQuery函数“promise()”。 对于像我这样喜欢自解释代码的人来说更好;)

 $("#yourdiv").slideUp("normal").promise().done(function() { $(this).remove(); }); 

使用承诺,你也可以等待多个animation完成,例如:

 selectedLi.slideUp({duration: 5000, queue: false}) .fadeOut({duration: 3000, queue: false}) .promise().done(function() { selectedLi.remove() }) 
 selectedLi.slideUp(200, this.remove);