jQuery Mobile樣式載入問題
阿新 • • 發佈:2019-02-05
轉自: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專題連結: