Hola qué tal amigo.
Este tema es muy viejo pero mi problema era el mismo que el tuyo y tardé demasiado en dar con la solución. Aparte es de los primeros resultados en Google así que aquí va cómo lo resolví:
El problema radica en que uno modifica el contenido de la página con AJAX por lo que el fancybox ya no funciona. Esto se soluciona echando a andar fancybox de nuevo para que reconozco los cambios hechos en la página.
Supongamos que la parte que ejecuta los cambios en AJAX es esta, los cambios deben ser así:
Código:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// Aquí van todos los scripts que modifican la página
// Una vez hechos todos los cambios se llama un Timeout que cargue el fancybox
setTimeout(function()
{
$("a[rel=TuRelacion]").fancybox( ... ... .... Tu configuración ... .... ... .. );
},1000);
}
La clave es usar un Timeout, al parecer fancybox es muy rápido y no espera a que carguen las imágenes. Yo uso uno de 1 segundo, ahí ustedes muévanle al que más se les acomode.
Una vez hecho esto, todo funcionará mágicamente.
¡Saludos y felices códigos!