Jeśli wybierzesz klasę lub zbiór elementów do animacji z jQuery:
$('.myElems').animate({....});
I wtedy też użyć funkcji oddzwaniania, możesz skończyć z wiele niepotrzebnych połączeń animate()
.
var i=1;
$('.myElems').animate({width:'200px'}, 200, function(){
//do something else
$('#someOtherElem').animate({opacity:'1'}, 300, function(){
if (i>1) console.log('the '+i+'-th waste of resources just finished wasting your resources');
i++;
});
});
Prawdopodobnie jest to po prostu zły kod i/lub projektu - ale czy jest coś, co mogę zrobić, że zarówno unika konieczności wiele animate()
połączenia tylko z jednym z nich za pomocą zwrotnego, posiadające ładunek zbędnych callbacków wykonującego i wkręcanie mojego kodu/oczekiwanego zachowania?
Idealnie byłbym w stanie zakodować pojedynczy "jednorazowy" callback, który będzie uruchamiany tylko raz - w przeciwnym razie może jest skuteczny sposób na sprawdzenie, czy coś jest już animowane przez jQuery?
Przykład: http://jsfiddle.net/uzSE6/ (ostrzeżenie - pokaże obciążenie skrzynek ostrzeżeń).
definiuje zmienną flagi w zakresie pliku lub w innym miejscu dostępnym przez 'animate()'. sprawdź go przed '$ (" # someOtherElem "). animate()' wywołaj i ustaw go w jego ciele, więc '$ (" # someOtherElem "). animate()' nie będzie wywoływane następnym razem. – fardjad