2012-03-26 117 views
6

我有一个.html文件看起来类似于以下内容:编程方式打开一个对话框,在jQuery Mobile的

<div id="myPage" data-role="page"> 
    <div data-role="header"> 
    <a href="#" data-icon="arrow-l" data-iconpos="notext" class="ui-btn-left jqm-home" onclick="backButton_Click();">Back</a> 
    <h1>My App</h1> 
    </div> 

    <div> 
    <input id="saveButton" type="button" value="Save" onclick="doStuff()" /> 
    </div> 

    <script type="text/javascript"> 
    function doStuff() { 
     var updatedText = getUpdatedText(); 
     $("#myMessage", "#myDialog").html(updatedText);      
     $.mobile.changePage("#myDialog", { role: "dialog" });  
    } 
    </script> 
</div> 

<div id="myDialog" data-role="page"> 
    <div id="myMessage"></div> 
    <input id="button1" type="button" value="Button 1" data-theme="b" onclick="someJS1();" /> 
    <input id="button2" type="button" value="Button 2" data-theme="c" onclick="someJS2();" /> 
</div> 

当“doStuff()”之称,我想在文本设置自定义消息我的对话框并打开对话框。出于某种原因,我一直无法打开myDialog。对于我的生活,我无法弄清楚我做错了什么。我已阅读张贴在这里的内容:http://jquerymobile.com/demos/1.0a4.1/docs/pages/docs-pages.html

+1

哦,我的,你的文档链接去了一个大约一岁的版本。确保您使用1.0版或更高版本,因为任何1.0版本以前的版本都是开发版本。 – Jasper 2012-03-26 22:54:44

回答

19

我认为你需要的页面的角色设置为对话框

<div id="myDialog" data-role="dialog"> 
    <div id="myMessage"></div> 
    <input id="button1" type="button" value="Button 1" data-theme="b" onclick="someJS1();" /> 
    <input id="button2" type="button" value="Button 2" data-theme="c" onclick="someJS2();" /> 
</div> 

然后用

$.mobile.changePage("#myDialog"); 

见小提琴http://jsfiddle.net/kYsVp/2/

打开对话框
+3

如果在'$ .mobile.changePage()'选项对象中设置'role:“对话框'',那么它将覆盖该元素的实际'data-role'属性并使用指定的角色。这里的文档:http://jquerymobile.com/demos/1.1.0-rc.1/docs/api/methods.html – Jasper 2012-03-26 22:52:19