2010-11-02 5 views
3

Je cherchai dans ce groupe et googlé autour, mais toujours pas de chance dans les réponses Je vois aussi que certains ont mon problème, mais les discussions ne sont pas aider, je suis iciL'utilisation fancybox dans une page chargée AJAX

La question est facile, et pour vous aider, j'ai emballé un avec les fichiers .zip vous pouvez tester

http://www.ivanhalen.com/fancyproblem.zip

  1. J'ai une page principale avec quelques linkes (index.php)
  2. En cliquant sur les charge un extrait througn AJAX (page.php)
  3. Dans l'extrait il y a un ou plusieurs liens, en cliquant sur les devraient ouvrir un fancybox iframe, (fb.php)

Eh bien, la fancybox ne fonctionnera pas, sauf pour le premier lien ouvert Ensuite, je continue à obtenir une erreur "t is not defined" dans Firefox, qui pointe moi nulle part J'ai essayé vraiment tout ce que je pouvais imaginer, mais toujours pas de chance ...

S'il vous plaît, pouvez-vous m'aider? Merci beaucoup

Répondre

4

Ne mettez pas le script à fancybox() vos liens dans le contenu de la réponse ajax. Au lieu de cela, ce que vous voulez faire est de déplacer l'appel fancybox() dans le rappel complete() de la fonction de charge, comme ceci:

$(document).ready(function(){ 
    $('#links a').live('click', function(e){ 
     e.preventDefault(); 
     var url = $(this).attr('href'); 
     $('#content').load(url, function(data, stat, req){ 
      $("a#popup").fancybox(); 
     }); 
    }) 
}); 
+0

Merci Bryan, mais il ne fonctionne toujours pas ... :-( – Ivan

+0

Ok, ok , J'ai déplacé le fichier fancybox.js de la page appelée AJAX (page.php) vers le script principal (index.php): ça marche maintenant !! Merci !!! – Ivan

+0

note intéressante: déplacer la fonction en dehors de l'appel mais toujours dans la fonction de clic ci-dessus ne fonctionnera pas non plus - il doit être sur la fonction de succès de l'appel. – Innate

Questions connexes