JQueryMobile页面跳转参数的传递解决方案
在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("服务请求失败,请稍候再试....");
- }
- }
如有不懂的地方,欢迎沟通谢谢!
JQueryMobile页面跳转参数的传递解决方案的更多相关文章
- Android first --- 页面跳转及数据传递
页面跳转即数据传递 创建第二个界面Acivity *需要在清单文件中添加配置一个Actuvity标签 标签中如果带有这个子节点,则会在Android中添加一个快捷图标 <intent-filte ...
- 微信小程序 页面跳转navigator与传递参数
页面之间跳转使用 navigator标签,wx.navigateTo ,wx.redirectTo 1.URL就是跳转的页面路径.上面代码中就是navigator目录下的navigator页面,tit ...
- angular4 在页面跳转的时候传递多个参数到新页面
页面跳转 router.navigate //单一参数: this.router.navigate(['/detail',id]); //多个参数: this.router.navigate(['/d ...
- jquerymobile页面跳转和参数传递
http://blog.csdn.net/chen052210123/article/details/7481578 页面跳转: 页面跳转时pagebeforechange事件会被触发两次,通过$(d ...
- iOS页面跳转及数据传递
转: http://blog.csdn.net/wang9834664/article/details/8025571 iOS页面跳转: 第一种 [self.navigationController ...
- Android应用开发基础之六:页面跳转和数据传递
创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> <action ...
- android 学习随笔十四(页面跳转与数据传递)
1.activity 创建第二个Activity 需要在清单文件中为其配置一个activity标签 标签中如果带有这个子节点,则会在系统中多创建一个快捷图标 <intent-filter> ...
- Android初级教程理论知识(第五章页面跳转和数据传递)
总体概述: Android四大组件 Activity BroadCastReceiver Service ContentProvider 创建第二个activity 新创建的activity,必须在清 ...
- struts2 action 页面与action参数的传递的三种方式
第一种: 初始页面: <form action="LoginAction.action" method="post"> 用户名:<input ...
随机推荐
- C++ 虚拟继承
1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念.虚拟基类是为解决多重继承而出现的.如:类D继承自类B1.B2,而类B1.B2都继 承自类A,因此在类D中两次出现类A中的变量和函数.为了节省内 ...
- HDU5806 NanoApe Loves Sequence Ⅱ (BestCoder Round #86 C)二分
分析:大于等于m的变成1,否则变成0,预处理前缀和,枚举起点,找到第一个点前缀和大于m即可 找第一个点可以二分可以尺取 #include <cstdio> #include <cst ...
- selenium + python 多浏览器测试
selenium + python 多浏览器测试 支持库包 在学习 Python + Selenium 正篇之前,先来看下对多浏览器模拟的支持.目前selenium包中已包含webdriver,hel ...
- 【LeetCode】102 - Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- Spring3 整合Quartz2 实现定时任务
一.Quartz简介 Quartz是一个由James House创立的开源项目,是一个功能强大的作业调度工具,可以计划的执行任务,定时.循环或在某一个时间来执行我们需要做的事,这可以给我们工作上带来很 ...
- xshell 上传 下载文件
借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. sz用法: 下载一个文件 sz filename 下载多个文件 sz file ...
- EntityFramwork6连接MySql错误
EntityFramwork6连接MySql错误 使用EF6连接MySql产生Exception: ProHub.ssdl(2,2) : 错误 0152: MySql.Data.MySqlClient ...
- How to run a terminal inside of vim?
[How to run a terminal inside of vim?] :sh turn vim into shell mode d+trl back to vim 参考:http://stac ...
- [原创]Devexpress XtraReports 系列 4 创建多栏报表
昨天我们完成了 [原创]Devexpress XtraReports 系列 3 创建主从报表 今天我们继续学习新的一种报表模式:多栏报表.(Demo源码,数据库最后附上) 或许很多人会问什么是多栏报表 ...
- UVa11997K Smallest Sums(优先队列)
K Smallest Sums You're given k arrays, each array has k integers. There are kk ways to pick exactly ...