Может возникать проблема в ситуации, когда анимация не завершилась, а блок уже исчез, чтобы избежать подобного достаточно просто использовать синхронизацию в виде передаваемой анонимной функции:
$('#some-block-id').animate({height: 0}, 1000,
function() { // выполнится после завершения анимациии
$('#some-block-id').hide();
}
);
(примере выше высота блока "анимируется" от некоего имеющегося значения до нуля)