我正在使用jquery mobile开发一个移动应用程序,我有一个页面可以从AJAX Web服务调用中动态填充。这会创建一个链接列表,然后进一步过滤页面。例如,第一次加载页面时,会获取分配给根类别的所有类别(在本例中为0)。然后,每个列表项包含一个类别参数,该参数是每个类别ID。但这意味着当您单击列表中的子项时,它会加载下一级。
我遇到的问题是历史问题。如果我向下钻取列表并单击后退按钮,它会直接返回到类别列表页面,但是使用参数0而不是我上面的最后一页可能是类别ID 2。
在创建动态页面时,jquery mobile是否无法正确保存历史记录。
我已按照此示例操作,无法弄清楚历史记录无效的原因http://jquerymobile.com/test/docs/pages/page-dynamic.html。
我在导航栏中有这个代码,可以将您带到初始类别列表页面:
<li><a href="#category_page?category=0" id="shop-button" data-icon="custom" data-transition="none">Shop</a></li>
然后我使用以下代码填充页面:
var webServiceURL = "http://localhost/GV/mobileservices/AppsWebService.asmx";
function getCategories(parentId) {
var parameters = "{'parentID':" + parentId + "}";
$.mobile.showPageLoadingMsg();
$('#categoriesList').empty();
$.ajax({
type: "POST",
url: webServiceURL + "/GetCategories",
data: parameters,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var t = "";
data = $.parseJSON(data.d);
categoriesJSON = data;
$.mobile.hidePageLoadingMsg();
$.each(data, function (index, item) {
t = t + "<li><a href=\"#category_page?category=" + item.CategoryID + "\" title=\"" + item.CategoryTitle + "\">" + item.CategoryName + "</a></li>";
});
$('#categoriesList').append(t).listview('refresh');
$('#categoriesContent').iscrollview("refresh");
$.mobile.hidePageLoadingMsg();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$.mobile.hidePageLoadingMsg();
alert(errorThrown);
}
});
};
function showCategory(urlObj, options) {
var categoryID = urlObj.hash.replace(/.*category=/, "");
var pageSelector = urlObj.hash.replace(/\?.*$/, "");
var $page = $(pageSelector),
$header = $page.children(":jqmData(role=header)");
$header.find("div").find("h3").html("Category");
$page.page();
options.dataUrl = urlObj.href;
$.mobile.changePage($page, options);
setTimeout("getCategories(" + categoryID + ")", 100);
}
// Listen for any attempts to call changePage().
$(document).bind("pagebeforechange", function (e, data) {
if (typeof data.toPage === "string") {
var u = $.mobile.path.parseUrl(data.toPage),
re = /^#category_page/;
if (u.hash.search(re) !== -1) {
showCategory(u, data.options);
e.preventDefault();
}
}
});
有人可以帮帮我吗?我可以在创建动态页面时手动将每个页面/网址添加到历史记录中吗?
谢谢,
克里斯