0

我正在使用 jquery mobile 和 cordova 创建一个移动应用程序。我已经从 json ajax 调用成功加载了一个动态列表视图。我的问题是,当我导航到另一个页面,然后按后退按钮时,原始页面的列表视图不会加载,并且应该没有任何内容。如果我刷新页面,就会出现列表视图。不是每次导航到此页面时都刷新整个页面,而是如何仅刷新列表视图?

我尝试在 DOM 和窗口加载时以及在两者之前刷新列表视图,并使用 $(document).on("pagebeforeshow", "#pagenamehere", function() {}); 无济于事。

更具体地说,我有两个带有列表视图的页面。导航步骤如下: 1. 加载第 1 页:listview 显示 2. 导航到第 2 页:它的 listview 不显示 3. 按返回:第 1 页 listview 显示 4. 导航到第 2 页:它的 listview 仍然不显示 5 . 刷新第 2 页:它的列表视图显示 6. 按返回:第 1 页的列表视图不显示

这个过程要明确listview只在url直接输入或重新加载时加载;由于某种原因,页面(不同的 html 文件)之间的导航打破了这一点。

4

1 回答 1

0

如果您在第二页的 head 标记内有脚本并且该页面是通过 Ajax 加载的,则该脚本将不会执行。

尝试将脚本从第二页的 div ( <div data-role="page" id="mySecondPage">) 内的 head 标签中移动,或者创建一个 JS 文件并在第一页的加载时加载它。相关示例在这里

jQuery Mobile 使用 Ajax 来执行页面转换,因此在转换期间 jQuery Mobile 只会注入响应的 body 元素(或者更具体地说是 data-role="page" 元素)的内容。不会使用页面头部的任何内容(页面标题除外)。

总之,当通过 Ajax 加载页面时,页面头部引用的任何脚本和样式都不会产生任何影响。如果通过 HTTP 请求页面,它们将执行,这就是在整个页面刷新后加载列表视图的原因。

于 2013-05-31T17:24:52.220 回答