Jquery 当我回顾历史时,我总是想翻开第一页
我已经使用HTML5和jquery mobile构建了一个移动应用程序,每次按下后退按钮时,我只需要返回到第一页 假设我有以下几页:Jquery 当我回顾历史时,我总是想翻开第一页,jquery,jquery-mobile,Jquery,Jquery Mobile,我已经使用HTML5和jquery mobile构建了一个移动应用程序,每次按下后退按钮时,我只需要返回到第一页 假设我有以下几页: 主要 产品 搜寻 搜索结果 关于 假设我去: 主-->搜索-->搜索结果-->产品,然后我转到关于页面 回到过去,历史会是(如果我在关于第页): 关于-->产品-->搜索结果-->搜索-->主 我需要的是每次按BackPage时直接返回主页,而不是浏览历史 我在过去几年中尝试搜索这个,但没有任何运气,它阻止了我完成我的应用程序 我花了好几天的时间来寻找答案,我
- 主要
- 产品
- 搜寻
- 搜索结果
- 关于
jQuery(document).ready(function($) {
if (window.history && window.history.pushState) {
$(window).on('popstate', function() {
var hashLocation = location.hash;
var hashSplit = hashLocation.split("#!/");
var hashName = hashSplit[1];
if (hashName !== '') {
var hash = window.location.hash;
if (hash === '') {
window.location = 'index.html#mainScreen';
}
}
});
}
});
$(window).on("navigate", function (event, data) {
var direction = data.state.direction;
if (direction == 'back') {
window.location = 'index.html#mainScreen';
}
});
但还是没有运气
我还得到了以下代码:
jQuery(document).ready(function($) {
if (window.history && window.history.pushState) {
$(window).on('popstate', function() {
var hashLocation = location.hash;
var hashSplit = hashLocation.split("#!/");
var hashName = hashSplit[1];
if (hashName !== '') {
var hash = window.location.hash;
if (hash === '') {
window.location = 'index.html#mainScreen';
}
}
});
}
});
$(window).on("navigate", function (event, data) {
var direction = data.state.direction;
if (direction == 'back') {
window.location = 'index.html#mainScreen';
}
});
如果方向返回,它将返回到主屏幕页面,但它将显示返回主页之前的最后一页。对于任何与导航相关的问题,请始终依靠
PageContainerForechange
事件。它是在更改页面之前触发的事件;它是一个popstate
、hashchange
和navigate
组合事件
此事件在每次页面更改时触发两次,第一次作为字符串返回toPage
,第二次作为对象返回。要更改toPage
值,它应该是一个字符串,所以您需要在它第一次触发时进行更改
此外,它还返回options
对象,该对象可以告诉您导航的方向options.direction
,无论是向前
还是向后
$(document).on("pagecontainerbeforechange", function (e, data) {
if (typeof data.toPage == "string" && data.options.direction == "back" && data.prevPage[0].id == "aboutPage") {
data.toPage = "#mainScreen"; /* redirect to main page */
data.options.transition = "flip"; /* optional */
}
});
在上面的代码中,您需要确保:
toPage
是一个字符串选项。方向
为后退
prevPage
是当按下后退按钮时要重定向用户的页面@billthelizard这是一个很好的问题,它将有助于使用JQM的其他人。老实说,你不会在文档中找到它。但是,您可以深入研究JQM代码并进行一些实验,以找到解决方案。我投票赞成重新打开:)使用JQM事件有一个更好的解决方案。希望你的问题能重新打开,在那之前,请阅读关于
pagecontainerbeforechange
。我会,谢谢你Omar:)用你尝试过但失败的内容更新你的帖子。谢谢你Omar,这对我很有效,我正在我的android手机上做更多的测试。我在我的多html项目中尝试了这个解决方案,但没有成功。它保持在同一页中。@rdon用你的代码发布一个问题,如果你想实现,我会帮助你。好的@Omar,这是我的问题: