2010-05-25 10 views
0

je la configuration suivante: index.html avec < div id = "conteneur"> < /div> en utilisant la méthode d'ancrage je charge un contenu différent html dans ce récipient .
Mon contenu contient div pour boîte de dialogue modale "boîte de dialogue" et je l'initialise avec la fonction personnalisée du javascript inclus dans index.html sur ajax charge réussie en utilisant le rappel problème jQuery-ui avec boîte de dialogue modale de ajax

 $.get("callback.php",query, function(data){ 
     $("#container").html(data); 
     initPos(); // here we run javascript to initialise modal dialog 
    });
Tout est ok jusqu'à ce que l'utilisateur clique sur autre menu (nous chargeons contenu différent) et après cela clique à nouveau menu avec cette boîte de dialogue modale, donc la page se charge à nouveau, nous appelons à nouveau le script (tout est ok), boîte de dialogue s'ouvre, les informations de la boîte de dialogue sont soumises au serveur dialogue avec
('#dialog-form').dialog('close');
il a travaillé première fois, mais ne fonctionne plus parce que nous initialisés cette boîte de dialogue deux fois et en utilisant Firebug je peux voir deux instances différentes de dialogue ui avec le même nom dans le

div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable"

Comment nettoyer ceci lorsque l'utilisateur sélectionne un autre élément de menu? Quelle est la bonne façon de faire face à cela? Est-il possible de fermer plusieurs boîtes de dialogue avec le même nom?

Répondre

0

Compris. Pour supprimer ce DIVs du corps - avant INITPOS() en fonction d'insertion de rappel ajax InitializeDialog()

 
function InitializeDialog() { 

    $("div").remove(".ui-dialog"); 
    $("div").remove("#dialog-form"); 
} 

En général Lorsque votre boîte de dialogue JQuery UI est retourné avec <script> étiquette en réponse à l'appel ajax. Dans cette situation, vous devez supprimer div de dialogue comme indiqué ci-dessus et ensuite faire un appel ajax.

Espérons que cela aide!

Questions connexes