如何打开从JavaScript的jQuery Mobile对话框?
我有一个对话框页面,并试图打开它,并显示来自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和EGGS!”,但是对话框没有popup。
在页面的任意位置添加<a>
标签,只需将对话框的id设置为href,如下所示: <a id='lnkDialog' href="#dialog" data-rel="dialog" data-transition="pop" style='display:none;'></a>
并replace$("#dialog").dialog();
在$("#lnkDialog").click();
的成功事件中$("#lnkDialog").click();
我认为这个更优雅:
$.mobile.changePage('#dialog', 'pop', true, true);
你应该在你的HTML data-role="dialog"
而不是page
<div data-role="dialog" id="dialog">...</div>
这个答案也适用:
$.mobile.changePage('#myPage', {transition: 'pop', role: 'dialog'});
如果使用“对话框”或“popup”不重要,请尝试以下操作:
$("#dialog").popup('open');
正确的方式与最新的查询版本
$.mobile.changePage("#dialog", { transition: "pop",role: "dialog" })
从JQM 1.4起, changePage
已被弃用,并将在1.5( http://api.jquerymobile.com/jQuery.mobile.changePage/ )中被删除。
他们build议应该使用pagecontainer
的change()
方法。
$.mobile.pageContainer.pagecontainer("change", "#dialog", { transition: 'pop', role: "dialog" });