JQueryMobile頁面跳轉參數的傳遞解決方案


   在JQueryMobile開發手機端應用使用可能需要考慮相關的頁面跳轉帶來的參數問題。因為JQueryMobile其實也是HTML5實踐的結果。HTML5中有localStorage和sessionStorage使用。最好采用Storage實現比較簡單易用。

例如在頁面A跳轉B頁面,在A跳轉前將跳轉參數注入到localStorage中,在B頁面初始化獲取localStorage相關的頁面參數。並做相應的處理同時在適當的頁面清理頁面參數。

storage.js內容如下:

Js代碼   收藏代碼
  1. function kset(key, value){  
  2.     console.log("key"+key+"value"+value);  
  3.     window.localStorage.setItem(key, value);  
  4. }  
  5.   
  6. function kget(key){  
  7.     console.log(key);  
  8.     return window.localStorage.getItem(key);  
  9. }  
  10.   
  11. function kremove(key){  
  12.     window.localStorage.removeItem(key);  
  13. }  
  14.   
  15. function kclear(){  
  16.     window.localStorage.clear();  
  17. }  
  18. //測試更新方法  
  19. function kupdate(key,value){  
  20.     window.localStorage.removeItem(key);  
  21.     window.localStorage.setItem(key, value);  
  22. }  

 

舉例如下:

簡單封裝如下:

Js代碼   收藏代碼
  1. //臨時存儲  
  2. var TempCache = {  
  3.     cache:function(value){  
  4.         localStorage.setItem("EasyWayTempCache",value);  
  5.     },  
  6.     getCache:function(){  
  7.         return  localStorage.getItem("EasyWayTempCache");  
  8.     },  
  9.     setItem:function(key,value){  
  10.         localStorage.setItem(key,value);  
  11.     },  
  12.     getItem:function(key){  
  13.         return localStorage.getItem(key);  
  14.     },  
  15.     removeItem:function(key){  
  16.         return localStorage.removeItem(key);  
  17.     }  
  18. };  

 

 在A頁面的內容:

  綁定所有workorderclass樣式的div

  設置相關的頁面參數:

Java代碼   收藏代碼
  1. //綁定視圖的列表的相關的信息  
  2. function bindListView(changeData){  
  3.     $(".workorderclass").each(function(){  
  4.             $(this).click(function(){  
  5.                 //綁定訂單的編號,便於在下一個頁面切換時候使用  
  6.                 TempCache.setItem("order_function_mgr_id",$(this).attr("id"));  
  7.                   
  8.                 TempCache.setItem("order_function","serviceOrderFunction");  
  9.                 TempCache.setItem("order_function_mgr_id_w",$(this).attr("id"));  
  10.             });  
  11.              
  12.     });  
  13. }  

 

在頁面B的初始化方法中:

  使用適時清空頁面的storage、。

Js代碼   收藏代碼
  1.     //工單展示的初始化信息  
  2.     function displayWorkOrder(){  
  3.          //綁定訂單的編號,便於在下一個頁面切換時候使用  
  4.          var workOrderId=TempCache.getItem("order_function_mgr_id");  
  5.          workOrderId=workOrderId.replace(/(^\s*)|(\s*$)/g,"");  
  6.          //追蹤工單來源  
  7.           functionName=TempCache.getItem("order_function");  
  8.           functionName=functionName.replace(/(^\s*)|(\s*$)/g,"");  
  9.             
  10.          if(workOrderId!=''){  
  11.             queryWorkOrderInfo(workOrderId,functionName);  
  12. TempCache.removeItem("order_function_mgr_id");       }else{  
  13.             alert("服務請求失敗,請稍候再試....");  
  14.          }  
  15.     }  

 


http://topmanopensource.iteye.com/blog/1532476


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM