{queue: false} pode ser seu amigo ao encadear animate () a eventos.
Eu estava alternando entre mostrar e ocultar, mas queria adicionar mais animação personalizada a ele. parecia com isso
$(this).show("slow").animate({
left: "+=400px",
}, "slow");
esta corrente dispara show () e, quando terminar, dispara animate ().
adicionando queue: false, eles disparam ao mesmo tempo. sintaxe semelhante a esta
$(this).show("slow").animate({
left: "+=400px",
}, {queue: false, duration: "slow"});
verifique a API jQuery para mais informações sobre animação e fila