Ich bin mir sicher, dass ich neulich darüber gelesen habe, aber ich kann es anscheinend nirgendwo finden.
Ich habe ein fadeOut()
Ereignis, nach dem ich das Element entferne, aber jQuery entfernt das Element, bevor es die Möglichkeit hat, das Ausblenden zu beenden.
Wie kann ich jQuery dazu bringen, zu warten, bis das Element ausgeblendet ist, und es dann entfernen?
107
Mit der jQuery 1.6-Version können Sie die
.promise()
Methode verwenden.quelle
promise()
oderwhen()
unddone()
Sie können einige sehr coole Verhalten von 3rd - Party - Methoden nutzen, oder sogar Ihre eigenen. +1 für die Bedeutung.promise()
!$(selector).fadeOut('slow').promise().done(function(){...});
Sie können auch verwenden
$.when()
, um bis zumpromise
Ende zu warten :Wenn Sie eine Anfrage stellen, die ebenfalls fehlschlagen könnte, können Sie sogar noch einen Schritt weiter gehen:
quelle
$.when()
funktioniert nicht, da ermyEvent()
kein Versprechen zurückgibt und$.when()
erwartet, dass Sie ihm ein oder mehrere Versprechen geben, damit er seine Arbeit erledigt .Wenn Sie etwas wechseln möchten, indem Sie eines ausblenden und ein anderes an derselben Stelle ausblenden möchten, können Sie ein {position: absolute} -Attribut auf die divs setzen, sodass beide Animationen übereinander abgespielt werden und Sie es nicht haben Warten Sie, bis eine Animation beendet ist, bevor Sie die nächste starten.
quelle