W przypadku przejść możesz użyć następującego polecenia do wykrycia końca przejścia za pomocą jQuery:
$("#someSelector").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });
Mozilla ma doskonałe referencje:
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions#Detecting_the_start_and_completion_of_a_transition
W przypadku animacji jest bardzo podobny:
$("#someSelector").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });
Zauważ, że możesz przekazać wszystkie ciągi zdarzeń poprzedzone przeglądarką do metody bind () jednocześnie, aby obsługiwać uruchamianie zdarzeń we wszystkich przeglądarkach, które je obsługują.
Aktualizacja:
Zgodnie z komentarzem pozostawionym przez Ducka: używasz .one()metody jQuery, aby mieć pewność, że program obsługi odpali tylko raz. Na przykład:
$("#someSelector").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ ... });
$("#someSelector").one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){ ... });
Aktualizacja 2:
bind()Metoda jQuery jest przestarzała, a on()metoda jest preferowana od dnia jQuery 1.7.bind()
Możesz także użyć off()metody w funkcji wywołania zwrotnego, aby mieć pewność, że zostanie ona uruchomiona tylko raz. Oto przykład równoważny z użyciem one()metody:
$("#someSelector")
.on("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",
function(e){
// do something here
$(this).off(e);
});
Bibliografia: