98

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

我应该怎么做才能使selectedLi幻灯片在被移除之前向上滑动?

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

5 回答 5

204

可以通过将调用删除的回调 arg 放到 slideUp 中来修复它吗?

例如

selectedLi.slideUp("normal", function() { $(this).remove(); } );
于 2008-11-21T06:20:31.423 回答
21

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

$("#yourdiv").slideUp(1000, function() {
    $(this).remove();
});
于 2011-01-27T13:48:50.873 回答
8

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

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

必须在匿名 function() 中调用它,以防止在 slideUp 结束之前执行 remove()。另一种等效的方法是使用 jQuery 函数“promise()”。更适合那些喜欢不言自明的代码的人,比如我 ;)

$("#yourdiv").slideUp("normal").promise().done(function() {
    $(this).remove();
});
于 2013-06-10T12:53:26.240 回答
3

使用 Promise,您还可以等待多个动画完成,例如:

selectedLi.slideUp({duration: 5000, queue: false})
.fadeOut({duration: 3000, queue: false})
.promise().done(function() {
    selectedLi.remove()
})
于 2015-03-04T13:05:39.790 回答
-2
selectedLi.slideUp(200, this.remove);
于 2008-11-21T21:37:03.853 回答