请使用firefox,chrome等最新浏览器浏览本站。

jquery mobile 跳转传值demo

js+jquery 阿豹 840次浏览 1个评论 扫描二维码
原理:

通过$(document).bind(“pagebeforechange”, handleChangePage);来绑定pagebeforechange事件的触发函数handleChangePage(e,data)。页面跳转时pagebeforechange事件会被触发两次,第一次触发时data.toPage是到达页面的url,类型是string,第二次触发时data.toPage不是String类型 ,此时可以获取到达页面的信息。为了获得到达页面的信息,所以我们需要获得第二次触发时候的event,可以简单通过if(typeof data.toPage != “string”)来判断,这时候可以用e.target.baseURI来获取到达页面的URI,并通过这个URI来解析出附带的参数信息。然后通过e.target.find(“pageId”)来获取到达页的相应组件,并进行相应的操作。

核心代码:
function beforechange(e, data) {
		if (typeof data.toPage != "string") {
			var url = $.mobile.path.parseUrl(e.target.baseURI)
			var re = 'details.html';
			if (url.href.search(re) != -1) {
				var page = $(e.target).find("#detailsPage");
				var d = data.options.data;
				var data = getUrlParam(url.href);
				page.find("#nameDiv").html(decodeURIComponent(data[0]));
				page.find("#timeDiv").html(decodeURIComponent(data[1]));
				page.find("#contentDiv").html(decodeURIComponent(data[2]));

			}
		}
	}

解析URL参数的js方法:

 

 

	function getUrlParam(string) {  
		var obj =  new Array();  
			if (string.indexOf("?") != -1) {  
				var string = string.substr(string.indexOf("?") + 1); 
				var strs = string.split("&");  
				for(var i = 0; i < strs.length; i ++) {  
					var tempArr = strs[i].split("=");  
					obj[i] = tempArr[1];
				}  
			}  
			return obj;  
	}

下载demo

演示demo


喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到
(1)个小伙伴在吐槽
  1. Essays like this are so important to brnnaeoidg people's horizons.
    匿名2017-03-11 20:28 回复