Für Übergänge können Sie Folgendes verwenden, um das Ende eines Übergangs über jQuery zu erkennen:
$("#someSelector").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });
Mozilla hat eine ausgezeichnete Referenz:
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions#Detecting_the_start_and_completion_of_a_transition
Für Animationen ist es sehr ähnlich:
$("#someSelector").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });
Beachten Sie, dass Sie alle Ereigniszeichenfolgen mit Browserpräfix gleichzeitig an die bind () -Methode übergeben können, um das Auslösen des Ereignisses in allen Browsern zu unterstützen, die dies unterstützen.
Aktualisieren:
Gemäß dem Kommentar von Duck: Sie verwenden die .one()
Methode von jQuery, um sicherzustellen, dass der Handler nur einmal ausgelöst wird. Beispielsweise:
$("#someSelector").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });
$("#someSelector").one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });
Update 2:
Die jQuery- bind()
Methode ist veraltet, und die on()
Methode wird ab sofort bevorzugt jQuery 1.7
.bind()
Sie können auch die off()
Methode für die Rückruffunktion verwenden, um sicherzustellen, dass sie nur einmal ausgelöst wird. Hier ist ein Beispiel, das der Verwendung der one()
Methode entspricht:
$("#someSelector")
.on("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
function(e){
// do something here
$(this).off(e);
});
Verweise: