我有这一行JavaScript,我看到的行为是selectedLi
在没有“向上滑动”的情况下立即消失。这不是我期望的行为。
我应该怎么做才能让selectedLi
在删除之前向上滑动?
selectedLi.slideUp("normal").remove();
答案 0 :(得分:187)
可以通过将回调中的删除调用arg移至slideUp来修复它吗?
例如
selectedLi.slideUp("normal", function() { $(this).remove(); } );
答案 1 :(得分:14)
你需要更明确:不要说“这个”(我同意应该这样做),你应该这样做:
$("#yourdiv").slideUp(1000, function() {
$(this).remove();
});
答案 2 :(得分:6)
最简单的方法是将slideUp中的“remove()”函数调用为其他人所说的参数,如下例所示:
$("#yourdiv").slideUp("normal", function() {
$(this).remove();
});
必须在匿名函数()中调用它以防止在slideUp结束之前执行remove()。另一种相同的方法是使用jQuery函数“promise()”。对于那些喜欢自解释代码的人来说更好,比如我;)
$("#yourdiv").slideUp("normal").promise().done(function() {
$(this).remove();
});
答案 3 :(得分:2)
使用promises,你也可以等待多个动画完成,例如:
selectedLi.slideUp({duration: 5000, queue: false})
.fadeOut({duration: 3000, queue: false})
.promise().done(function() {
selectedLi.remove()
})
答案 4 :(得分:-2)
selectedLi.slideUp(200, this.remove);