现在的位置: 首页 > 综合 > 正文

JQueryMobile页面跳转参数的传递解决方案

2013年05月21日 ⁄ 综合 ⁄ 共 1832字 ⁄ 字号 评论关闭

 在JQueryMobile开发手机端应用使用可能需要考虑相关的页面跳转带来的参数问题。因为JQueryMobile其实也是HTML5实践的结果。HTML5中有localStorage和sessionStorage使用。最好采用Storage实现比较简单易用。

例如在页面A跳转B页面,在A跳转前将跳转参数注入到localStorage中,在B页面初始化获取localStorage相关的页面参数。并做相应的处理同时在适当的页面清理页面参数。

storage.js内容如下:

function kset(key, value){
    console.log("key"+key+"value"+value);
    window.localStorage.setItem(key, value);
}

function kget(key){
    console.log(key);
    return window.localStorage.getItem(key);
}

function kremove(key){
    window.localStorage.removeItem(key);
}

function kclear(){
    window.localStorage.clear();
}
//测试更新方法
function kupdate(key,value){
    window.localStorage.removeItem(key);
    window.localStorage.setItem(key, value);
}

 

举例如下:

简单封装如下:

//临时存储
var TempCache = {
	cache:function(value){
		localStorage.setItem("EasyWayTempCache",value);
	},
	getCache:function(){
		return  localStorage.getItem("EasyWayTempCache");
	},
	setItem:function(key,value){
		localStorage.setItem(key,value);
	},
	getItem:function(key){
		return localStorage.getItem(key);
	},
	removeItem:function(key){
		return localStorage.removeItem(key);
	}
};

 

 在A页面的内容:

  绑定所有workorderclass样式的div

  设置相关的页面参数:

		//绑定视图的列表的相关的信息
		function bindListView(changeData){
			$(".workorderclass").each(function(){
				    $(this).click(function(){
				    	//绑定订单的编号,便于在下一个页面切换时候使用
				        TempCache.setItem("order_function_mgr_id",$(this).attr("id"));
				        
						TempCache.setItem("order_function","serviceOrderFunction");
						TempCache.setItem("order_function_mgr_id_w",$(this).attr("id"));
				    });
				   
			});
		}

 

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

  使用适时清空页面的storage、。

	//工单展示的初始化信息
	function displayWorkOrder(){
		 //绑定订单的编号,便于在下一个页面切换时候使用
	     var workOrderId=TempCache.getItem("order_function_mgr_id");
	     workOrderId=workOrderId.replace(/(^\s*)|(\s*$)/g,"");
	     //追踪工单来源
	      functionName=TempCache.getItem("order_function");
		  functionName=functionName.replace(/(^\s*)|(\s*$)/g,"");
		  
		 if(workOrderId!=''){
		 	queryWorkOrderInfo(workOrderId,functionName);
TempCache.removeItem("order_function_mgr_id");		 }else{
		 	alert("服务请求失败,请稍候再试....");
		 }
	}

 

如有不懂的地方,欢迎沟通谢谢!

抱歉!评论已关闭.