jQuery-Mobile:多页模板加载但已死

标签 jquery jquery-mobile

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

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

如果我将 data-ajax="false" 添加到 page1 中的链接,一切都很好。

如何通过 AJAX 加载多页面模板页面,以便其上的按钮正常工作?

最佳答案

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

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

<a hef="#" data-ajax="false">my link</a>

或者像这样:

<a hef="#" rel="external">my link</a>

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

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

更新

我见过一个插件,可以让你做你想做的事,但我一直找不到它。它只是拉出所有 data-role="page"来自多页文档的元素而不仅仅是第一个元素(在我看来,这会产生一些奇怪的深层链接问题)。

更新

哦,这是一个很好的:)

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

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

关于jQuery-Mobile:多页模板加载但已死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858808/

相关文章:

javascript - 显示对象的多个部分?

jquery - 使用 jquery 提交表单时的 PreventDefault 递归问题

jquery - 调整图像大小以适合屏幕jquery mobile

jquery - 使用 css 让背景颜色始终环绕文本

jquery - 如何从下拉列表中获取未选中的索引?

jQuery Closest - 它是如何工作的?

jquery - 使用jquery获取子域html页面

jquery - 使用 Transify 时设置 border-radius 属性

jquery - 为什么我的 map 没有完全显示?

jquery - jQPlot 图表在 jquery mobile 弹出窗口中不起作用