2012-12-11 192 views
2

我有3页:jquery mobile - 页面不刷新

通过单击页面1上的“过滤器”按钮,它会将您带到page2。点击第2页上的“灰色按钮”即可进入第3页。点击第2页上的“红色按钮”可以返回第1页。

但是在所有这些转换过程中,页面会丢失其样式。

我尝试添加在第1页的代码,但它似乎并没有很好地工作:如果[R使用Windows 8导航,当你浏览到一个网页到另一个,新的页面

$(document).bind('pagechange', function() { 
      $('.ui-page-active .ui-listview').listview('refresh'); 
      $('.ui-page-active :jqmData(role=content)').trigger('create'); 
     }); 
+1

没有看到代码,你如何期待任何人知道? –

+0

@Priya我已经看到你的页面你真的在说哪种风格?并且您不通过jqm追加任何动态内容,例如.listview('refresh')和.trigger('create');不需要。 –

回答

2

看来,当用户点击一个jQuery Mobile的驱动网站的链接,导航系统的默认行为是使用链接的href制定一个Ajax请求(而不是允许浏览器的默认链接行为请求整页加载的href)。

这意味着当页面通过Ajax加载时,引用页面头部的任何脚本和样式都不会产生任何影响,但是如果通过HTTP正常请求页面,它们将执行。

所以我试图巩固风格,以及在每个页面的头部引用相同的样式表和脚本集。这解决了这个问题。

http://jquerymobile.com/demos/1.0/docs/pages/page-scripting.html

+0

upvote为解释你如何解决你自己的问题。 S.O.周围有很多问题。这是自我回答,但缺乏明确的解释。做得很好。 – mason81

0

加载CSS,如果任何CSS选择器具有相同的名称,新的CSS将是有效的。当你回来时你可能会失去这种风格。

尝试使用CSS命名空间的每一页和子页面: https://www.google.com.br/search?q=css+namespace

0

我不能确定你使用的是导航到第2页或第3页

什么逻辑,你可以尝试changePage功能导航到不同网页..

$.mobile.changePage("page2.html", { allowSamePageTransition: true, 
transition: "slide", reloadPage: true }); 
+0

尚未获取样式的页面。 – Priya

+0

你好priya ..请让我知道你在哪里(在哪个页面上)添加了css(样式表)文件或样式标签。或者可以请你分享演示链接的东西......? –

+0

您可以在我的问题部分看到演示页面,其中显示>>我有3个页面:第1页,第2页,第3页。第1页,第2页和第3页是链接。 – Priya

0

当您使用pageChange一个Ajax请求将进行到该网址,它会被加载只与数据角色=“页面”在div里面的内容。所以你所有的东西都会被忽略(JS和CSS)。