1. 程式人生 > >jQuery Mobile樣式載入問題

jQuery Mobile樣式載入問題

轉自:http://m.blog.csdn.net/blog/killzero/17259391

RT。我是初步接觸jQuery Mobile.剛開始使用,在進行頁面跳轉時,發生了問題。

問題描述:A.html為首頁,點選導航之後進入B.html頁面,在B.html頁面,通過一個<a>標籤跳轉回到首頁A.html。其中,A.html頁面沒有載入jQuery Mobile的js和css庫。B頁面使用了jQuery Mobile的js和css庫。點選跳轉標籤,跳轉到A.html後A頁面內所有css和js都失效。

問題分析:在jQuery Mobile中,頁面跳轉預設使用ajax進行。這樣子會將JQM的樣式預設帶入我們沒有使用JQM的A頁面,而A頁面沒有夾在<div data-role="page">標籤中的css和js都將失效。

有幾個方案:

1.可以用兩種方法來解決:一是在index頁面中,註冊所有需要使用到的外部JS檔案,或者使用母版頁面來統一;二是將頁面內部JS寫在data-role="page"標籤下,這樣無論頁面怎樣跳轉,均可以執行。

2.關閉Ajax效果:

禁止ajxa跳轉有兩種情況:

1、禁止區域性ajax跳轉

2、禁止全域性ajax跳轉

對於#1只需要在a標籤中新增下面的屬性:

data-ajax=“false”
有時我們要用正常的http請求而不用Ajax請求,比如連結到別的網站等情況。通過給a標籤加下面的屬性,可以將連結指定為正常的http請求:

rel=external
對於#2我們需要設定一個全域性的禁止ajax跳轉的方式,js程式碼如下:

$(document).bind("mobileinit", function() {
			// disable ajax nav
			$.mobile.ajaxEnabled=false
		});
注意:上面的程式碼片段需要放在Jquery.mobile-xxx.min.js引入之前。

順便說一句,初始化的設定都需要放在此處,例如載入錯誤資訊的設定:

$.mobile.pageLoadErrorMessage = 'Sorry, something went wrong. Please try again.';
其他的問題:

        假如,你的頁面如果這個按鈕是返回上一級的頁面,JQM有一個預設的方法可以用,你可以在<a>標籤中新增data-rel="back"來使用返回上一級頁面的功能。又或者,可以使用href="javascript:window.history.go(-1)" data-ajax="false"兩個標籤。 

下面這個部落格也給我解決問題提供了思路:感謝這位博主:

文章連結:

JQM專題連結: