为什么我的Jquery Mobile Web应用程序在刷新页面时会丢失其自定义主题

时间:2012-01-26 03:46:52

标签: c# model-view-controller jquery-mobile

我正在编写一个C#.Net MVC移动网络应用程序,其中包含使用jQuery Mobile Themeroller构建的自定义主题。主题工作正常,直到我点击F5,单击浏览器刷新按钮,或执行任何其他刷新操作。刷新后,页面将丢失自定义主题并返回默认的jQuery Mobile css。我只能刷新主页上的网络应用程序,而不会失去主题。

read this short post,但我不确定它是一样的。我可以看到这将在ajax调用完成后如何修复样式,但是刷新问题呢?我的意思是,如果我在启用JQM的页面上点击“刷新”或F5,它会丢失所有自定义主题(来自themeroller)。

这可能是因为JQM将base元素添加到第一页的方式吗?我不知道如何确认这一点。我不应该在每个文档就绪事件上调用$('#mypage').trigger('create');,我应该吗?

我感谢任何回复。我想发布一个jsfiddle,但在使用自定义主题时很难。

更新

<meta name="viewport" content="width=device-width, initial-scale=1" /> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<link rel="stylesheet" href="Content/stylesheets/mobilere.min.css" />
<link rel="stylesheet" href="Content/stylesheets/main.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>

这是head块中的所有内容 - mobilere.min.css是我的样本样式表。

我目前没有dom ready事件设置,因为我想避免在每个页面上触发刷新。

1 个答案:

答案 0 :(得分:0)

  1. 您需要在网站每个页面的<head>部分中找到您在页面<head>部分发布的代码,以便用户刷新任何页面上的浏览器它将是可访问的。在正常浏览网站时,这不会产生太多开销,因为jQuery Mobile只会拉入页面上的第一个data-role="page"元素并将其添加到当前DOM中。

  2. 您应该使用样式表的绝对路径,以便无论页面的基本网址是什么,都可以找到它们。

  3. 在网站注释中,$('#mypage').trigger('create');用于向页面窗口小部件添加适当的类和HTML结构,而不是更改样式表。