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都將失效。

解決方法:根據網上的解決方法的綜合,方法有:<a>標籤中加入屬性data-ajax="false"來禁用頁面的ajax跳轉,轉而使用默認的http請求頁面。 這是網上牛人給的解決思路:(轉載自)http://suchso.com/Jquery-JqueryMobile/jquerymobilepageinitjsexec.html

                               

有幾個方案:

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"兩個標籤。 

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

文章鏈接:

http://www.wglong.com/main/artical!details?id=4#q2

JQM專題鏈接:

http://www.wglong.com/main/artical!findByGroup?gId=1


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章