javascript - left - jQuery slideUp(). remove() no parece mostrar la animación de slideUp antes de que se produzca la eliminación
slidetoggle is not a function (5)
¿Podría solucionarlo colocando la llamada para eliminar en un arg de devolución de llamada a slideUp?
p.ej
selectedLi.slideUp("normal", function() { $(this).remove(); } );
Tengo esta línea de JavaScript y el comportamiento que estoy viendo es que selectedLi
desaparece instantáneamente sin "deslizarse hacia arriba". Este no es el comportamiento que esperaba.
¿Qué debería hacer para que laLi selectedLi
deslice antes de que se elimine?
selectedLi.slideUp("normal").remove();
selectedLi.slideUp(200, this.remove);
La forma más simple es llamar a la función "remove ()" dentro de slideUp como un parámetro como otros han dicho, como este ejemplo:
$("#yourdiv").slideUp("normal", function() {
$(this).remove();
});
Es imprescindible llamarlo dentro de la función anónima () para evitar que remove () se ejecute antes de que el slideUp haya finalizado. Otra forma igual es usar la función jQuery "promise ()". Mejor para aquellos a los que les gusta el código que se explica por sí mismo, como yo;)
$("#yourdiv").slideUp("normal").promise().done(function() {
$(this).remove();
});
Usando promesas también puedes esperar que se terminen múltiples animaciones, por ejemplo:
selectedLi.slideUp({duration: 5000, queue: false})
.fadeOut({duration: 3000, queue: false})
.promise().done(function() {
selectedLi.remove()
})
Debes ser más explícito: en lugar de decir "esto" (que acepto que debería funcionar), debes hacer esto:
$("#yourdiv").slideUp(1000, function() {
$(this).remove();
});