jQuery slideUp ().remove (), похоже, не показывает анимацию скольжения перед удалением


у меня есть эта строка JavaScript и поведение я вижу то, что selectedLi мгновенно исчезает без "скольжения вверх". Это не то поведение, которое я ожидал.

что я должен делать, чтобы selectedLi скользит вверх, прежде чем он будет удален?

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

5 ответов:

может быть, это можно исправить, поставив вызов для удаления в обратном вызове arg для slideUp?

Эл.г

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

вы должны быть более явными: вместо того, чтобы говорить " это " (который я согласен должен работать), вы должны сделать это:

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

самый простой способ-вызвать функцию "remove ()" внутри slideUp в качестве параметра, как говорили другие, как в этом примере:

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

необходимо вызвать его внутри анонимной функции (), чтобы предотвратить удаление (), которое будет выполнено до завершения slideUp. Другим равным способом является использование функции jQuery " promise ()". Лучше для тех, кто любит понятный код, как я;)

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

используя обещания, вы также можете дождаться завершения нескольких анимаций, например:

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