如何从javascript打开jQuery Mobile Dialog?

Wil*_*ran 37 ajax post dialog popup jquery-mobile

我有一个对话框页面,我试图打开它并显示来自AJAX POST的结果.

这是我的jQuery成功事件:

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

我的HTML有两个页面,第二个是对话框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>
Run Code Online (Sandbox Code Playgroud)

我的AJAX POST正在运行,元素id ="text"正在使用"SPAM和EGGS!"进行更新,但对话框没有弹出.

Tom*_*art 67

我认为这个更优雅:

$.mobile.changePage('#dialog', 'pop', true, true);
Run Code Online (Sandbox Code Playgroud)

你应该用你的HTML data-role="dialog"而不是page

<div data-role="dialog" id="dialog">...</div>
Run Code Online (Sandbox Code Playgroud)

  • 绝对是更优雅的解决方案.刚尝试过,它的确有效. (2认同)
  • 不适合我.JQM使用pageChange做了一些奇怪的事情,它会杀死'x'功能.接受的解决方案实际上是有效的(只是隐藏链接的某处) (2认同)

cod*_*mer 54

<a>在页面的任何位置添加标记,只需将对话框的ID设置为href,如下所示: <a id='lnkDialog' href="#dialog" data-rel="dialog" data-transition="pop" style='display:none;'></a>

并用$("#dialog").dialog();你的成功事件替换 $("#lnkDialog").click();

  • 喜欢这个解决方案 (2认同)

Jos*_*son 49

这个答案也有效:

    $.mobile.changePage('#myPage', {transition: 'pop', role: 'dialog'});   
Run Code Online (Sandbox Code Playgroud)


小智 20

如果使用"对话框"或"弹出窗口"并不重要,请尝试以下操作:

$("#dialog").popup('open');
Run Code Online (Sandbox Code Playgroud)


Gru*_*mpy 5

最新查询版本的正确方法

$.mobile.changePage("#dialog", { transition: "pop",role: "dialog" })
Run Code Online (Sandbox Code Playgroud)