jQuery-Mobile:MultiPage模板加载但已经死了

Ian*_*ink 1 jquery jquery-mobile

我有一个单页模板页面(page1.aspx),它加载一个多页模板页面(page2.aspx)

多页模板页面具有将内部页面显示为对话框的按钮.当page1负载page2通过默认AJAX行为,Page2上的按钮不起作用.page2在浏览器中强制刷新可让第2页上的按钮工作.

如果我data-ajax="false"在第1页添加我的链接,一切都很好.

如何通过AJAX加载多页模板页面以使其上的按钮有效?

Jas*_*per 5

您无法通过AJAX链接到多页文档.只有第一个data-role="page"元素将被导入到DOM中,其他所有元素都将被忽略(即使是内容中的内容<head>).

如果链接到没有AJAX的多页面模板,则将加载整个页面并且所有data-role="page"元素都可用.为此,您可以在特定链接上设置属性,如下所示:

<a hef="#" data-ajax="false">my link</a>
Run Code Online (Sandbox Code Playgroud)

或者像这样:

<a hef="#" rel="external">my link</a>
Run Code Online (Sandbox Code Playgroud)

您也可以像这样全局设置此选项:

<script src="jquery.js"></script>
<script>
$(document).bind('mobileinit', function () {
    $.mobile.ajaxEnabled = false;
});
</script>
<script src="jquery-mobile.js"></script>
Run Code Online (Sandbox Code Playgroud)

UPDATE

我见过一个允许你做你想做的插件,但是我找不到它.它只是data-role="page"从多页文档中提取所有元素而不仅仅是第一个(在我看来,这会产生一些奇怪的深层链接问题).

UPDATE

哦,这是一个很好的:)

使用1.0版,jQuery Mobile将允许您通过向data-prefetch="true"链接添加属性来预取页面.如果将多页模板拆分为单独的页面,则可以预先获取它们,以便将它们添加到DOM中并在单击链接时立即显示(而不是等待AJAX​​请求解析) .

预取文档:http://jquerymobile.com/demos/1.0/docs/pages/page-cache.html