Jquery mobile 在导航历史记录中查找时,是否应使用$.mobile.navigate.history.closest?
我发现功能Jquery mobile 在导航历史记录中查找时,是否应使用$.mobile.navigate.history.closest?,jquery-mobile,Jquery Mobile,我发现功能$.mobile.navigate.history.closest可用,但找不到如何使用它。有文件吗 我正在寻找这样的解决方案: 页面都是[data role=page], 其中一些(但不是全部)是根页面[data my role=root] 在浏览多个页面时,单击按钮将转到最后一个根页面 $.mobile.navigate.history.closest(某些标准)似乎适合查找最后一个根页面,但我不知道某些标准的语法通过id或url搜索条目。您可以创建一个自定义函数来循环浏览历史记录
$.mobile.navigate.history.closest可用,但找不到如何使用它。有文件吗
我正在寻找这样的解决方案:
页面都是[data role=page]
,
其中一些(但不是全部)是根页面[data my role=root]
在浏览多个页面时,单击按钮将转到最后一个根页面
$.mobile.navigate.history.closest(某些标准)
似乎适合查找最后一个根页面,但我不知道某些标准的语法通过id
或url
搜索条目。您可以创建一个自定义函数来循环浏览历史记录条目$.mobile.navigate.history.stack
,并查找特定数据
请注意,如果要更改导航并确定导航方向,则需要使用pagecontainerbeforechange
事件-仅当它返回string
而不是object
时
下面的代码(反向)遍历历史记录条目,并检查该条目是否包含数据my root=“true”
-.data(“my root”)
。此自定义数据
被添加到根页面
$(document).on("pagecontainerbeforechange", function (e, data) {
if (typeof data.toPage == "string" && data.options.direction == "back") {
var i, active = $.mobile.navigate.history.activeIndex;
/* loop through history entries in reversed order */
for (i = active; i >= 0; i--) {
/* to avoid errors, "i" shouldn't equal 0
history entry shouldn't be current page */
if (i != 0 && $($.mobile.navigate.history.stack[i].hash).data("my-root") && !$($.mobile.navigate.history.stack[i].hash).hasClass("ui-page-active")) {
/* alter page */
data.toPage = $.mobile.navigate.history.stack[i].url;
/* optional */
data.options.transition = "flip";
break;
/* means first page is reached - there's no hash for first page
move to first page */
} else if (i === 0) {
data.toPage = $.mobile.navigate.history.stack[0].url;
data.options.transition = "flow";
}
}
}
});
您想用data role=root
导航回最近的页面吗?@Omar我想导航回最近的
。使用“root page 2”和“root page 3”似乎没问题,但一旦单击黑色背景“root page 1”,然后转到2和3,单击“后退”按钮时将不起任何作用。让我多学习。谢谢。此解决方案将更改所有备份操作。实际上,我需要有“正常后退”和“根后退”按钮——只有“根后退”跳转到根页面。知道怎么做吗?@KaFaiLo简单地说,添加!data.prevPage.data(“我的根目录”)
条件到if
语句。我不确定,但这似乎不是所需要的。我需要的是:导航历史是[1,2,3,4],只有2是根页面。在4上,同一页上显示两个按钮:“正常后退”和“根后退”按钮“正常后退”变为3,“根后退”变为2。@KaFaiLo您可以将侦听器添加到这些按钮中,并使用上面的代码,而不是侦听PageContainerBeforChange
。我给了你一个如何劫持反向导航的主意,你所需要的只是根据你的需要修改它。我没有你的代码,所以我无法预测你想要100%实现什么。如果你能为我提供你的页面结构,我很乐意进一步帮助你。