Ojej, panowie... Czy nie wygląda to Wam jak jakieś zabobony? Że niby wywołanie alert() pauzuje wykonanie części a części nie, i jak coś synchronicznego jest pod alert(), to może się magicznie wykonać przed kliknięciem OK...?
W tym przypadku chodzi chyba o coś innego. Może autor czegoś nie wytłumaczył, nie widzimy kodu. alert()
jest funkcją synchroniczną i blokuje wywoływanie dalszych instrukcji, w tym animacji umieszczonych bezpośrednio pod alert(). Nie blokuje np. upływu czasu ;), więc jeśli mieliśmy gdzieś WCZEŚNIEJ wywołanie setTimeout(), to czas, w którym jest wyświetlany alert jest normalnie liczony (w kodzie unikalnej_nazwy setTimeout jest później i niewiele daje (*)).
Zobaczcie przykład na podstawowe zachowanie alert() i animacji:
http://jsbin.com/apukey/edit#preview
A kod prościutki (można podejrzeć w zakładce Code):
$("#trigger").click(function() {
alert("The animation will start after you close this popup.");
$("#trigger").slideUp();
});
I działa jak należy: po kliknięciu OK jest animacja.
Gdyby autor dał wyciąg konkretnego kodu czy link do całej strony (ważne, żeby można to było jak najprościej u siebie odpalić), można by się zastanowić co tam się dzieje.
(*) Problem, z naszego punktu widzenia praktycznie niedeterministyczny, może być np. związany z przeciążeniem głównego procesu renderującego przeglądarki i sposobem, w jaki przeglądarka przerysowuje