it-swarm.dev

如何从javascript打开jQuery移动对话框?

我有一个对话框页面,正在尝试打开它并显示AJAX POST)的结果。

这是我的jQuery成功事件:

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

我的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>

我的AJAX POST正在运行,并且元素id =“ text”正在用“ SPAM and EGGS!”更新,但是对话框没有弹出。

37
Will Curran

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

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

54
codef0rmer

我认为这个更优雅:

$.mobile.changePage('#dialog', 'pop', true, true);

您应该在html data-role="dialog"而非page

<div data-role="dialog" id="dialog">...</div>
67
Tombart

此答案也适用:

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

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

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

最新查询版本的正确方法

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

从JQM 1.4开始,changePage已被弃用,并将在1.5中删除( http://api.jquerymobile.com/jQuery.mobile.changePage/

他们建议人们应该使用pagecontainerchange()方法。

$.mobile.pageContainer.pagecontainer("change", "#dialog", { transition: 'pop', role: "dialog" });
1
brixenDK