37 votes

Comment ouvrir une boîte de dialogue jQuery Mobile à partir de javascript ?

J'ai une page de dialogue et j'essaie de l'ouvrir et d'afficher les résultats d'un POST AJAX.

Voici mon événement de succès jQuery :

success: function(resp) {                               
  $("#dialog").dialog();
  $("#text").html('SPAM and EGGS!')
}       

Mon HTML a deux pages, la deuxième étant le html de dialogue :

<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 POST AJAX fonctionne et l'élément id="text" est mis à jour avec "SPAM et EGGS !", mais le dialogue ne s'affiche pas.

67voto

Tombart Points 4503

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>

54voto

codef0rmer Points 4551

Ajouter <a> n'importe où dans votre page, il suffit de mettre l'id de votre dialogue comme href comme indiqué ci-dessous : <a id='lnkDialog' href="#dialog" data-rel="dialog" data-transition="pop" style='display:none;'></a>

Et remplacer $("#dialog").dialog(); à l'intérieur de votre événement de succès avec $("#lnkDialog").click();

49voto

Joseph Anderson Points 1421

Cette réponse fonctionne également :

    $.mobile.changePage('#myPage', {transition: 'pop', role: 'dialog'});

20voto

Ahmet Mehmet Points 223

S'il n'est pas important d'utiliser "dialogue" ou "popup", essayez ceci :

$("#dialog").popup('open');

5voto

Grumpy Points 702

La manière correcte avec la dernière version de la requête

$.mobile.changePage("#dialog", { transition: "pop",role: "dialog" })

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X