需要在jquery mobile中刷新页面

时间:2012-01-04 05:55:26

标签: jquery

我正面临着jquery mobile的一些问题。 当我从第一页移到第二页时,它不会显示第二页,因为它应该是我每次都需要刷新页面。它似乎最初缺少一些CSS类。我不明白为什么会这样。

我使用http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css作为CSS

http://code.jquery.com/jquery-1.6.4.min.js

http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js作为JS。

在同一页面上,我有这个锚标记

<a href="" onClick="showText()">showText</a>

showText()方法没有第一次调用并显示未定义的javascript错误showText但是当我刷新页面时它工作正常。

2 个答案:

答案 0 :(得分:5)

关于 showText()

您必须了解JQM的工作原理。为了实现转换等,JQM将页面拉入并删除到DOM中。您从第一页(您的BasePage类型)开始,它完全加载了所有.js / .css文件并进行了增强。

当您加载第二页时,JQM只会抓取 data-role =“page”id =“your-2nd-page”中的内容,并在第一页后将其添加到DOM中!此div标记之外的所有脚本以及第二页标题中的所有.css和.js文件都将被JQM抓取 NOT

因此,如果你的showtext()函数位于页面div之外的第二页或仅在第二页中使用的.js文件中,它将不会被抓取并注入DOM,因此你的函数不会工作。

当您刷新第2页时,第2页将是您完全增强的BasePage,因此第2页上的所有脚本都将被加载,但是现在第一页上的所有脚本都不起作用,如果您加载第一页。

解决方案:我将所有css /脚本放在所有页面中。这样无论用户在哪里启动,都会加载所需的一切。

答案 1 :(得分:0)

这不是一个解决方案,但它适用于我的问题。

通过使用表单帖子而不是锚链接,我设法阻止加载缓存页面。

<!-- <a href="index.php?p=6_2"  data-role="none"><img src="images/large_red_arrow.png" /></a> -->
<form action="index.php?p=6_2" method="post" data-ajax="false">
    <input data-role="none" id="view-button" value="view" name="view" type="image" src="images/large_red_arrow.png" alt="View"/>
</form>