Поскольку каждая анимация асинхронная, вам нужно вызывать любой другой метод внутри функции обратного вызова .
EDIT
Извините, это не сработало. Также корректируется с помощью fadeIn
:
$('#save-button').fadeOut("slow", function() {
$('#save-button').replaceWith(draft_saved);
$('#save-button').hide().fadeIn(1000, function() {
$('#save-button').fadeOut(1000, function() {
$('#save-button').replaceWith(save_draft);
$('#save-button').hide().fadeIn(1000);
});
});
});
Позвольте мне объяснить, почему это hide()
необходимо:
Когда вы fadeOut
какой-то элемент, jQuery помещает display: none
непосредственно в этот HTML. Но вы заменяете другим HTML (методом replaceWith()
). Но fadeIn()
только затемняет элементы, которые были скрыты. Итак, нам нужно скрыть новый HTML, и тогда произойдет fadeIn()
.