/ / jquery non aspetterà che l'animazione finisca prima di essere rimossa, perché? - jquery

jquery non aspetterà che l'animazione finisca prima di essere rimossa, perché? - jquery

Stavo lavorando su qualcosa di semplice, invece di fare semplicemente:

$(this).next().remove();

Volevo che avesse un po 'più di bagliore e volevo aggiungere una funzione animata

$(this).next().slideUp().remove();

dove scivolerà verso l'alto per nascondere l'oggetto prima di rimuoverlo. Durante il test con Chrome, rimuove praticamente solo gli elementi e non raggiunge la transizione di smerigliatura che mi aspettavo.

Il test senza la rimozione ha gli elementi che utilizzano correttamente slideUp ().

C'è qualcosa che mi manca?

risposte:

7 per risposta № 1

Prova con la funzione di callback di slideUp() metodo.

$(this).next().slideUp(function() {
// remove the element after
// animation finished
$(this).remove();
});

4 per risposta № 2

Questo è perché slideUp succede in background. Per aspettare fino a quando non è terminato, usa il suo callback.

$(this).next().slideUp(function(){
$(this).remove();
});

2 per risposta № 3

La chiamata all'animazione è asincrona in quanto inizia ma l'esecuzione continua. Il modo per ottenere ciò che vuoi è con un callback forse in questo modo:

 $(this).next().slideUp(function(){
$(this).remove();
});