J'ai cette ligne de JavaScript et le comportement que je vois est que le selectedLi
disparaît instantanément sans "glisser vers le haut". Ce n'est pas le comportement que j'attendais.
Que dois-je faire pour que le selectedLi
glisse vers le haut avant d'être supprimé?
selectedLi.slideUp("normal").remove();
Pourriez-vous y remédier en plaçant l'appel à supprimer dans un argument de rappel vers slideUp?
par exemple
selectedLi.slideUp("normal", function() { $(this).remove(); } );
Vous devez être plus explicite: plutôt que de dire "ceci" (qui, selon moi, devrait fonctionner), vous devez le faire:
$("#yourdiv").slideUp(1000, function() {
$(this).remove();
});
La façon la plus simple est d'appeler la fonction "remove ()" dans slideUp comme un paramètre comme d'autres l'ont dit, comme cet exemple:
$("#yourdiv").slideUp("normal", function() {
$(this).remove();
});
Il est indispensable de l'appeler dans la fonction anonyme () pour empêcher l'exécution de remove () avant la fin du slideUp. Une autre manière égale consiste à utiliser la fonction jQuery "promise ()". Mieux pour ceux qui aiment le code explicite, comme moi;)
$("#yourdiv").slideUp("normal").promise().done(function() {
$(this).remove();
});
En utilisant des promesses, vous pouvez également attendre la fin de plusieurs animations, par exemple:
selectedLi.slideUp({duration: 5000, queue: false})
.fadeOut({duration: 3000, queue: false})
.promise().done(function() {
selectedLi.remove()
})