Je suis sûr que j'ai lu à ce sujet l'autre jour, mais je n'arrive pas à le trouver nulle part.
J'ai un fadeOut()
événement après lequel je supprime l'élément, mais jQuery supprime l'élément avant qu'il ait la chance de finir de disparaître.
Comment faire pour que jQuery attende que l'élément disparaisse, puis le supprimer?
107
Avec la version jQuery 1.6, vous pouvez utiliser la
.promise()
méthode.la source
promise()
ouwhen()
etdone()
vous pouvez tirer parti d'un comportement très cool de méthodes tierces, ou même du vôtre. +1 pour signifier.promise()
!$(selector).fadeOut('slow').promise().done(function(){...});
Vous pouvez également utiliser
$.when()
pour attendre lapromise
fin:Si vous faites une demande qui pourrait également échouer, vous pouvez même aller plus loin:
la source
$.when()
ne fonctionne pas carmyEvent()
ne retourne pas de promesse et$.when()
attend de vous que vous lui passiez une ou plusieurs promesses pour qu'elle fasse son travail.si c'est quelque chose que vous souhaitez changer, en fondu un et en fondu un autre au même endroit, vous pouvez placer un attribut {position: absolute} sur les divs, de sorte que les deux animations se jouent l'une sur l'autre, et vous n'avez pas d'attendre la fin d'une animation avant de démarrer la suivante.
la source