El método fadeUp de JQuery, ademas de poder recibir el parámetro que controla el tiempo de animación del elemento ( "fast", "slow", o double en milisegundos, ejemplo: 1000) también puede recibir una función anónima la cual se ejecutara solo después que la animación concluya.
Este es un ejemplo que podrías probar en tu código:
$("#titulo").slideUp("slow", function(){
$("#titulo").css("display","none");
alert('El display none, se ejecuta después que termina el slideUp completamente.');
});
En el siguiente código:
$("#titulo").slideUp("slow");
$("#titulo").css("display", "none");
El problema es que la linea del display none, se esta ejecutando antes de que termine la animación del elemento titulo, he aquí donde entra la función anónima para evitar esto.
Usar la función anónima funcionaria, entonces viéndolo desde ese punto de vista es una solución, pero a mi entender es redundancia, porque el mismo método fadeUp se encarga de hacer un display none al elemento involucrado. Puedes corroborar esto pulsando f12 en tu navegador para inspeccionar elementos y a continuación pulsa sobre una imagen y fijate en el cambio del valor de la propiedad display del elemento con id titulo en cada click que haces a una imagen.
Si eliminaras la linea de código:
$("#titulo").css("display", "none");
y dejaras solo esta:
$("#titulo").slideUp("slow");
a mi entender lo solucionaría todo.
Espero que te sea útil este comentario y cualquier otra duda, no dudes en preguntar.
Saludos!