jQuery Mobile中jQuery.mobile.changePage方法使用詳解

業餘草發表於2015-04-02
jQuery.mobile.changePage方法用的還是很多的。作為一個老手,有必要對jQuery mobile中實用方法做一些總結。系列文章請看jQuery Mobile專欄。jquery.mobile.changepage是過時的jQuery Mobile 1.4.0及將被刪除在1.5.0。使用pagecontainer部件的change()法代替。
注意該方法是在內部使用的頁面載入和轉換作為一個結果,點選一個連結或提交表單時。跳轉外部頁面全部沒有效果,必須是內部的DIV頁面才有效果。
jQuery.mobile.changePage( to [, options ] )引數解釋說明:
to:字串型別或Object型別,將要跳轉到的目的頁面。
options:可選引數,Object型別。其物件內的屬性解釋如下:
allowSamePageTransition:布林型別,預設為false。預設情況下,changepage()忽略請求改變當前的活動頁面。設定為true,允許請求執行。注意的一些頁面轉換到另一個頁面(changepage請求的頁和頁是不同的),他們可能不會如預期的動畫。
changeHash:布林型別,預設為true。設定為true時位址列中的Hash更新會建立一個新的瀏覽器歷史記錄的影響。設定為false,傳入的頁面在瀏覽器歷史替換當前頁面,使用者導航無法通過瀏覽器的“後退”按鈕回到上一個頁面。
data:Object型別或字串型別,預設為 undefined。跳轉頁面傳送ajax請求的引數。
dataUrl:字串型別,預設為 undefined。完成頁面轉換時要更新瀏覽器地址的URL地址。如不特別指定,則使用頁面page元素的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。只有到to的引數被指定時使用。
使用例子如下:新增changehash:假以避免iframe引起的問題。
$.mobile.changePage( "../resources/us.html", { 
	transition: "slideup", 
	changeHash: false 
});
$.mobile.changePage( "../resources/results.php", {
  type: "post",
  data: $( "form#search" ).serialize(),
  changeHash: false
});
$.mobile.changePage( "../resources/confirm.html", {
  transition: "pop",
  reverse: false,
  changeHash: false
});
//以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,型別,資料定義為變數來傳遞。
$.mobile.changePage({ url: formresults.php, type: 'get', data:$('form#myform').serialize () });


//使用changepage來載入第三個頁面
$.mobile.changePage([$.mobile.activePage.data ('ui.prevPage'), anotherPreviousPage], 'pop');

相關文章