Почему бы вам не попробовать fadeIn () вместо использования show () с delay ().
Я думаю, что то, что вы пытаетесь сделать, может быть сделано с этим.
Вот код jQuery для fadeIn и FadeOut (), который также имеет встроенный метод для задержки процесса.
$(document).ready(function(){
$('element').click(function(){
//effects take place in 3000ms
$('element_to_hide').fadeOut(3000);
$('element_to_show').fadeIn(3000);
});
}