J'ai une page de dialogue et j'essaie de l'ouvrir et d'afficher les résultats d'un AJAX POST.
Voici mon événement de réussite jQuery:
success: function(resp) {
$("#dialog").dialog();
$("#text").html('SPAM and EGGS!')
}
Mon HTML a deux pages, la seconde étant la boîte de dialogue html:
<div data-role="page" id="main">
# content
</div>
<div data-role="page" id="dialog">
<div data-role="header">
<h1>Your Message</h1>
</div>
<div data-role="content" id="text">
</div>
</div>
Mon AJAX POST fonctionne et l'ID d'élément = "texte" est mis à jour avec "SPAM and EGGS!", Mais la boîte de dialogue ne s'affiche pas).
Ajoutez la balise <a>
N'importe où dans votre page, mettez simplement l'ID de votre boîte de dialogue en tant que href comme indiqué ci-dessous: <a id='lnkDialog' href="#dialog" data-rel="dialog" data-transition="pop" style='display:none;'></a>
Et remplacez $("#dialog").dialog();
dans votre événement à succès par $("#lnkDialog").click();
Je pense que celui-ci est beaucoup plus élégant:
$.mobile.changePage('#dialog', 'pop', true, true);
vous devriez avoir dans votre html data-role="dialog"
au lieu de page
<div data-role="dialog" id="dialog">...</div>
Cette réponse fonctionne également:
$.mobile.changePage('#myPage', {transition: 'pop', role: 'dialog'});
s'il n'est pas important d'utiliser "dialogue" ou "popup", essayez ceci:
$("#dialog").popup('open');
manière correcte avec la dernière version de la requête
$.mobile.changePage("#dialog", { transition: "pop",role: "dialog" })
Depuis JQM 1.4, le changePage
est obsolète et sera supprimé en 1.5 ( http://api.jquerymobile.com/jQuery.mobile.changePage/ )
Ils suggèrent d'utiliser à la place la méthode change()
de pagecontainer
.
$.mobile.pageContainer.pagecontainer("change", "#dialog", { transition: 'pop', role: "dialog" });