2010-07-17 4 views
4

J'ai un problème avec jQuery dialog et load sur une application Web que je développe.
Sur une page de résultats de recherche, sur chaque entrée, j'ai un lien qui donne une vue rapide du résultat, en tirant une boîte de dialogue modale qui récupère et affiche le contenu html en utilisant jQuery load.
Tout fonctionne très bien et je peux fermer et ouvrir les boîtes de dialogue comme je le veux sans aucun problème.jQuery modal et le problème de charge

Je voudrais ajouter une fonctionnalité à cette boîte de dialogue avec un lien au bas de celle-ci qui devrait déclencher un autre jQuery load montrant une autre petite partie minuscule de html.

Cette fonction ne fonctionne que la première fois; Lorsque je ferme la boîte de dialogue en sélectionnant un autre aperçu, le premier chargement fonctionne parfaitement comme d'habitude, mais cliquer sur le lien ne montre rien.

C'est un extrait de mon code:

function preview(question_id, service){ 
    var jQuerydialog = jQuery('<div>loading</div>'); 
    jQuerydialog.dialog({ 
    title: 'Preview', 
    modal: true, 
    jQuerydialog.load('/url...','', function (responseText, textStatus, XMLHttpRequest) { 
    } 
    ); 
    return false; 
} 

function preview_see_more(answer_id, service){ 
     jQuery('#see_more').append('<div>loading </div>').load('/url....','', function (responseText, textStatus, XMLHttpRequest) { 
      alert('performed!') 
     } 
    ); 
return false; 
} 

Ajout d'une alerte (« réalisée ») sur preview_see_more rappel de charge, cette alerte est déclenchée fonction à chaque fois est appelée et avec Firebug je peux voir appel ajax déclenché avec état 200.

preview fonction est utilisée pour charger l'aperçu principal; au bas de l'aperçu principal il y a un lien pointant vers la fonction preview_see_more qui devrait ajouter une autre partie de html (ceci se produit juste la première fois qu'un aperçu principal est créé)

Des indices?

EDIT:
here un exemple de résultat de recherche.
En cliquant sur [Q], la fonction preview est déclenchée.
Je travaille (toujours sur ma machine de test) pour ajouter un lien en bas de la boîte de dialogue qui devrait déclencher la fonction preview_see_more.

EDIT2:
here un exemple avec le problème en évidence.
Cliquez sur le [Q] du premier lien; Cliquez ensuite sur "Afficher la réponse acceptée". Fermez la boîte de dialogue et réessayez.

Répondre

1

Je voudrais jeter un oeil à la page avec le lien preview_see_more encore sur la page. Ce que je soupçonne, c'est que vous liez le lien pour ne fonctionner qu'une seule fois et recharger le contenu sans lier la fonction la prochaine fois. Mais il serait beaucoup plus clair si vous pouviez ajouter le lien

Modifier: J'ai ajouté cela au code et cela a fonctionné.

function quicklook_accepted_answer(answer_id, service){ 
jQuery('#accepted_answer_block :last').append('<div>loading <img src="/images/indicator.gif"/></div>').load('/quicklookanswer?answer='+ answer_id +'&service='+service,'', function (responseText, textStatus, XMLHttpRequest) { 
} 
); 
return false; 
} 

Mais le principal problème est qu'il ya de nombreux cas de pop-up modal étant créé ce que vous pouvez faire est de supprimer la zone modale lorsqu'un nouveau bouton « Q » est cliqué

+0

je pense que dialogue \ modale a un problème pour gérer jquery.Je ne peux même pas utiliser Jquery Toggle(). J'ai opté pour une autre solution. Merci quand même. Si vous voulez inspecter le problème, le deuxième lien est là pour tester. – systempuntoout