changePage() 頁面跳轉
jQuery.mobile.changePage( to [, options ] )
從一個頁面跳轉到另一個頁面,使用$.mobile對象的changePage方法來實現。但要使用此方式的時候,要以點擊一個鏈接或者提交表單來實現。此方法有兩個參數。
to:是第一個參數,是必須的,不可缺少。類型:字符串或者對象。
字符串: 絕對或相對URL地址。如:("about/us.html")
對象:
jquery選擇器對象,如:($("#about"))。
一個指定了兩個頁面引用的數組[from,to] ,用以在已知的page進行跳轉. From 是當前所能看到的頁面( 或者是 $.mobile.activePage )。
發送表單數據的對象,如({to: url, data: serialized form data, type: "get" or "post"} 。
options:是第二個參數,是可選。類型:對象
allowSamePageTransition(布爾值,默認:false)
默認情況下,changePage() 會忽略跳轉到已活動的頁面的請求。如果把這項設為true,會使之執行。開發者應該注意有些頁面的轉場會假定一個跳轉頁面的請求中來自的頁面和目標的頁面是不同的,所以不會有轉場動畫。
changeHash(布爾值,默認:true)
判斷地址欄的哈希值是否應被更新。
data(字符串 或 對象,默認:undefined)
要通過ajax請求發送的數據,只在changePage() 的 to 參數 是一個地址的時候可用。
dataUrl(字符串,默認:undefined)
完成頁面轉換時要更新瀏覽器地址的URL地址。如不特別指定,則使用頁面的data-url屬性值。
pageContainer(jQuery選擇器,默認:$.mobile.pageContainer)指定應該包含頁面的容器。
reloadPage(布爾值,默認:false)
強制刷新頁面, 即使當頁面容器中的dom元素已經準備好時,也強制刷新。只在changePage() 的 to 參數 是一個地址的時候可用。
reverse(布爾值,默認:false)
設定頁面轉場動畫的方向,設置為true時將導致反方向的轉場。
role(字符串,默認:undefined)
顯示頁面的時候使用data-role值。默認情況下此參數為認:undefined,意為取決于元素的@data-role屬性。
showLoadMsg(布爾值,默認:true) 設定加載外部頁面時是否顯示loading信息。
transition(字符串,默認:$.mobile.defaultPageTransition)使用顯示的頁面時,過渡。
type(字符串,默認:get)
指定頁面請求的時候使用的方法("get" 或者 "post")。只在changePage() 的 to 參數 是一個地址的時候可用。
//以slideup效果 跳轉到 "about us" 頁面$.mobile.changePage("about/us.html", "slideup"); //以pop效果 跳轉到 "confirm" 頁面 并且在url hash里不記錄其歷史$.mobile.changePage("../alerts/confirm.html", "pop", false, false); //跳轉到 "search results" 頁面,提交id為 "search"的表單數據$.mobile.changePage({url:"searchresults.php" , type:"get" , data: $("form#search").serialize() }); //將頁面url,類型,數據定義為變量來傳遞。var pageData = { url: formresults.php, type: 'get', data:$('form#myform').serialize () };$.mobile.changePage(pageData);//使用changepage來加載第三個頁面var previousPage = $.mobile.activePage.data ('ui.prevPage');$.mobile.changePage([previousPage, anotherPreviousPage], 'pop');
loadPage() 加載外部頁面
jQuery.mobile.loadPage( url [, options ] )
加載一個外部頁面,附加其內容,并將其插入到DOM
url:是第一個參數。是必須的。類型:字符串或者對象。
options:第二個參數。是可選的。類型:對象。
allowSamePageTransition (default: false)
類型:布爾值
默認情況下,changepage()忽略請求改變當前頁面。這個選項設置為true,允許請求執行。開發人員應該注意的一些網頁過渡假設一個changepage請求設置FromPage、ToPage是不同的,所以他們可能不會如預期的動畫。開發人員負責提供適當的過渡,或關閉這個特定的情況下。
changeHash (default: true)
類型:布爾值
如果地址欄中的哈希值應更新
data (default: undefined)
類型:數據或者字符串
要發送的數據與一個AJAX頁面請求
loadMsgDelay (default: 50)
類型:數字
被迫延遲(毫秒)顯示之前加載信息。這是為了讓一個頁面已經訪問了被從緩存中取得沒有加載信息的時間
pageContainer (default: $.mobile.pageContainer)
類型:jQuery選擇器
指定要包含的頁面元素
reloadPage (default: false)
類型:布爾值
強制刷新頁面, 即使當頁面容器中的dom元素已經準備好時,也強制刷新。只在changePage() 的 to 參數 是一個地址的時候可用。
role (default: undefined)
類型:字符串
顯示頁面的時候使用data-role值。默認情況下此參數為認:undefined,依賴于元素的@data-role屬性。
showLoadMsg (default: true)
類型:布爾值
加載外部頁面時,設定是否顯示loading信息。
transition (default: $.mobile.defaultPageTransition)
類型:字符串
使用顯示的頁面時,過渡
type (default: "get")
類型:字符串
指定頁面請求的時候使用的方法("get" 或者 "post")。只在changePage() 的 to 參數 是一個地址的時候可用。
加載一個外部頁面,提高其內容,并將其插入到DOM。這種方法被稱為內部的changepage()功能時,它的第一個參數是一個URL。這個函數不影響當前頁面可以在后臺加載頁面。該函數返回一個對象,獲取延期承諾在該頁被增強,插入到文檔中的解決。
加載“about/us.html”的頁面到DOM
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>jQuery.mobile.loadPage demo</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css"> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <!-- The script below can be omitted --> <script src="/resources/turnOffPushState.js"></script> <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script></head><body> <div data-role="page"> <div></div> </div><script>$.mobile.loadPage( "about/us.html" );</script> </body></html>
加載一個“searchresults.php”頁,要發送的表單數據是“search”字符。
<!doctype html><html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>jQuery.mobile.loadPage demo</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css"> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <!-- The script below can be omitted --> <script src="/resources/turnOffPushState.js"></script> <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script></head><body> <div data-role="page"> <div></div> </div><script>$.mobile.loadPage( "searchresults.php", { type: "post", data: $( "form#search" ).serialize()});</script> </body></html>