PhoneGap中文网

标题: JqueryMobile 页面跳转传值 Demo [打印本页]

作者: admin    时间: 2014-2-20 21:45
标题: JqueryMobile 页面跳转传值 Demo
        原理:

        通过$(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”)来获取到达页的相应组件,并进行相应的操作。


相关方法


  1. function beforechange(e, data) {
  2.                 if (typeof data.toPage != "string") {
  3.                         var url = $.mobile.path.parseUrl(e.target.baseURI)
  4.                         var re = 'details.html';
  5.                         if (url.href.search(re) != -1) {
  6.                                 var page = $(e.target).find("#detailsPage");
  7.                                 var d = data.options.data;
  8.                                 var data = getUrlParam(url.href);
  9.                                 page.find("#nameDiv").html(decodeURIComponent(data[0]));
  10.                                 page.find("#timeDiv").html(decodeURIComponent(data[1]));
  11.                                 page.find("#contentDiv").html(decodeURIComponent(data[2]));
  12.                                
  13.                                
  14.                         }
  15.                 }
  16.         }
复制代码

解析URL参数的js方法:

  1.         function getUrlParam(string) {  
  2.                 var obj =  new Array();  
  3.                         if (string.indexOf("?") != -1) {  
  4.                                 var string = string.substr(string.indexOf("?") + 1);
  5.                                 var strs = string.split("&");  
  6.                                 for(var i = 0; i < strs.length; i ++) {  
  7.                                         var tempArr = strs[i].split("=");  
  8.                                         obj[i] = tempArr[1];
  9.                                 }  
  10.                         }  
  11.                         return obj;  
  12.         }


复制代码



作者: 小雪    时间: 2014-2-20 21:45
正在学习中 谢谢楼主了 非常支持 开源
作者: 爱哭的鱼    时间: 2014-2-21 02:47
我是来刷分的,嘿嘿顺便学习一下
作者: befairyliu    时间: 2014-2-21 11:15
我是来刷分的
作者: markt    时间: 2015-1-13 19:52
求楼主把demo发我QQ邮箱谢谢
qq:857647066@qq.com
作者: 金生往事    时间: 2015-1-16 08:50
从本地获取json的值作为参数传给另一个页面,怎么做做到。。我现在通过ajax,的方式能获取json,但是怎么把传给第二个页面?
作者: 梆梆    时间: 2015-1-26 09:13
学习学习~
作者: lizhuquan769    时间: 2015-1-29 16:14
金生往事 发表于 2015-1-16 08:50
从本地获取json的值作为参数传给另一个页面,怎么做做到。。我现在通过ajax,的方式能获取json,但是怎么把 ...

你把json参数转成url参数,  到了你要跳转的页面, 就根据楼主的方法拿url参数就行了
作者: fanjian224    时间: 2015-2-2 17:06
您好,想请教一个问题,
var page = $(e.target).find("#detailsPage");
上面这个函数中,如何通过参数来改变  #detailsPage 这个,也就是说  $(e.target).find("#detailsPage"); 中  #detailsPage 是可以通过参数改变的




欢迎光临 PhoneGap中文网 (http://bbs.phonegap100.com/) Powered by Discuz! X3.2