2011-10-30 57 views
1

我正在用JQuery Mobile做一个PhoneGap应用程序,我有两个页面,一个页面有一个动态列表,另一个有一个窗体编辑或创建一个页面。这些都在一个单一的HTML文件。JQuery Mobile&通过查询字符串在链接中传递变量 - 但查询字符串不刷新

点击列表项目通行证?action = edit并点击“Add”按钮我有,通过?action =添加querystrings。

Here is a jsfiddle to visualize the pages

注:如不采取行动不太一样活代码。

我运行在Android手机上我的应用程序,如果我做这些动作的,正确的querysting在警告框观察: -

  1. 点击列表页
  2. 点击Add按钮回表单页面
  3. 点击列表页面上的编辑列表项的链接

但是,如果我这样做,其他各地为何(点击编辑,然后再添加按钮)单击Add按钮从未展示在警告框中添加查询字符串 (jsfiddle示例始终锁定第一次点击的链接的查询字符串,这比实时代码更糟!)

回答

5

这里的问题是您使用多个模板来执行此操作。如果你使用这个作为单独的页面,这将正常工作。作为一个多应用程序,处理这个问题的最好方法是让链接触发一些全局变量的设置,以跟踪应用程序的当前状态。

作出这样

<a href="javascript:editPage(15)">Page 15</a> 

编辑链接然后使脚本是这样的:

var editingId = 0 

function editPage(id){ 
    editingId = id; 
    $.mobile.changePage("#editingPage"); 
}); 

$("div#editingPage").live("pageshow", function(){ 
    loadDataForPage(editingId); 
}); 
+0

感谢巴蒂尔:) – Ben