$.mobile.pageContainer 指的是包含其他虚拟页面的元素。它设置为<body>
。所以我认为它可以改变。实际上,一些 JQM 方法 (changePage) 允许您为页面指定非默认页面容器。JQM 文档缺少必要的细节。所以我的问题是:
- 您可以更改标记/代码中的默认页面容器吗?如何?
- 除了 之外,还有什么原因需要页面容器
<body>
? - 这是否意味着可以有多个页面容器,其中一些“页面”位于一个页面容器中,而其他“页面”位于其他容器中?你为什么想做这个?
$.mobile.pageContainer 指的是包含其他虚拟页面的元素。它设置为<body>
。所以我认为它可以改变。实际上,一些 JQM 方法 (changePage) 允许您为页面指定非默认页面容器。JQM 文档缺少必要的细节。所以我的问题是:
<body>
?1 您可以将页面 div 放置在标记中的容器元素中。
2 我使用需要 FORM 元素的 ASP.Net Webforms,所以有时我将我的 jQM 页面添加到顶级 FORM 而不是正文,从而允许我在单独的页面中使用 ASP.Net 控件,同时共享相同的 FORM 元素。
3 我认为您需要将所有页面保存在同一个容器中,否则页面之间的链接会中断。这是一个jsFiddle,容器中有 2 个页面相互链接。尝试将它们放在单独的容器中,您将看到链接停止工作。
<div id="PageContainer1">
<div data-role="page" id="page1">
<div data-role="header">
<h1>My page 1</h1>
</div>
<div data-role="content"> <a href="#page2" data-role="button">Go to Page 2</a>
</div>
</div>
<!-- insert separate container here
</div>
<div id="PageContainer2">
-->
<div data-role="page" id="page2" data-theme="a">
<div data-role="header">
<h1>My page 2</h1>
</div>
<div data-role="content"> <a href="#page1" data-role="button">Go to Page 1</a>
</div>
</div>
</div>
更新:正如评论中所指出的,您当然可以通过 changePage 导航到其他容器中的页面,只是标准的 href="#page2" 链接中断。
$.mobile.changePage("#page2", {"pageContainer": $("#Container2")});
我不确定拥有单独容器的用例,也许是代码组织?