web-dev-qa-db-fra.com

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

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).

37
Will Curran

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();

54
codef0rmer

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>
67
Tombart

Cette réponse fonctionne également:

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

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

$("#dialog").popup('open');
20
Ahmet Mehmet

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

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

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" });
1
brixenDK