2012-12-11 252 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)。