在动态页面中如php中我们是很容易实现页面的跳转传值的 如 http://www.phonegap100.com/index.php?mod=index 但是 Jquery Mobile中都是使用的静态页面我们如何实现呢,下面与大家一起分享 Jquery Mobile中文章跳转传值如何实现 实现原理:通过$(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; } Jquery Mobile中文章跳转传值案例下载: |
Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )
GMT+8, 2024-4-25 22:19 , Processed in 0.037818 second(s), 20 queries .
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.