2010-11-13 20 views
1

En cliquant sur un lien dans une boîte de dialogue ouverte, le contenu est chargé dans la fenêtre parente à partir de laquelle j'ai ouvert la boîte de dialogue. Comment puis-je forcer le contenu à charger dans la boîte de dialogue au lieu du parent?charger le contenu dans la boîte de dialogue jQuery déjà ouverte

Parent:

dialogDiv = $(document.createElement('div')); 
dialogDiv.dialog(myProps); 
dialogDiv.html(myData); 
dialogDiv.dialog('open'); 

pop-up de dialogue:

<a href="mysite.com">click</a>  
+0

Quel type de contenu est-ce qu'on parle ici (c'est-à-dire, HTML/JSON)? Si HTML, votre intention est-elle que cela agisse comme un IFRAME? – John

+0

Il s'agit d'un code HTML brut. J'ai besoin de montrer une table pour que la pagination soit activée. Je stream les données via ajax. Tout cela fonctionne sauf lorsque je clique sur le lien de pagination le parent charge toutes les données. – trajectory

+0

Néanmoins, peu importe d'où vient le contenu ou quel type de données est utilisé, il suffit de charger les données sur place au lieu du parent. – trajectory

Répondre

2

Vous pouvez simplement utiliser .load() la boîte de dialogue <div> et event.preventDefault() sur l'ancre (pour empêcher le comportement go-to-href normal), comme ceci:

$("a").click(function(e) { 
    dialogDiv.load(this.href); 
    e.preventDefault(); 
}); 

Il suffit de changer le $("a") pour être un peu plus précis ... en ne sélectionnant que les liens que vous voulez charger dans la boîte de dialogue. Aussi ces pages ne doivent être des fragments, ou utiliser un sélecteur différent, par exemple, si vous voulez que le <div id="content"> de la page dans le href, ça ressemble à ceci:

dialogDiv.load(this.href + " #content");