2009-09-14 8 views
0

J'ai regardé celui-ci depuis un moment et je suis complètement perplexe. Vous aurez besoin de firebug pour cela, jetez un oeil aux requêtes AJAX. Ils semblent se multiplier après chaque clic de suivant et précédent, jusqu'à ce qu'il soit trop lent à charger entièrement:jQuery load() de l'intérieur ajaxComplete() rappel provoquant plusieurs charges

http://www.ftsdev.com/freegreen/virtual-tour-prototype/virtual-tour.html

Toute la source de JavaScript pour c'est:

/freegreen/virtual-tour-prototype/js/virtual-tour.js 

Fonctions à regarder :

launchVirtualTour() 
$('#vt-next').one('click',function() 
$('#vt-prev').one('click',function() 

Lorsque ajaxComplete() est appelée je vérifie le fichier qui a chargé contre un tableau en dehors de la fonction de rappel. Cela me permet de déterminer si c'est le premier ou le dernier élément de la série afin de pouvoir masquer les boutons Précédent ou Suivant en conséquence. J'ai un problème que les problèmes se trouvent quelque part dans les lignes 80-82 où j'ajoute 1 à la valeur inArray() stockée dans indexInArray.

J'ai cherché autour mais je ne trouve pas de situations similaires là-bas, n'importe quelle aide est très appréciée.

Merci!

Répondre

1

J'ai brièvement essayé la page. À partir d'un survol rapide du code et de ma réaction instinctive, il semble que vous ne libérez pas les événements de clic liés précédemment. Pour autant que je peux dire que c'est le flux à votre bug:

  1. utilisateur clique pour afficher un diaporama
  2. Vous liez clic suivant/précédent événements
  3. utilisateur clique autour, en utilisant la page suivante/précédente boutons
  4. clics de l'utilisateur sur le diaporama en cours
  5. utilisateur clique dans un autre diaporama
  6. Vous lient suivant clic/prev événements
  7. utilisateur clique autour, en utilisant le nex t/boutons prev, provoquant l'appel du contenu à deux reprises

Vous devez dissocier les événements de clic lorsque l'utilisateur clique sur le premier diaporama. Ou ne liez pas à l'étape 6.

+0

Merci beaucoup Sam, je vais essayer de déboguer basé sur la première chose ci-dessus demain matin et vous faire savoir comment ça se passe. –

+0

Hah, j'ai juste pris une photo et ça a marché. J'ai déplacé les événements en dehors de l'ajaxComplete et les ai fait vivre des événements afin qu'ils s'attachent au contenu du contenu AJAX chargé et cela a fonctionné. Merci beaucoup pour ce Sam, je n'ai jamais pensé que je pourrais résoudre celui-ci si vite! –

+0

Très heureux d'entendre Kevin. :-) Bonne chance avec le reste! –