我在PhoneGap中运行单页应用程序,并使用Sammy.js
驱动内容考虑一下:
主页是domain.com/#/panel
然后我点击Reglas(规则) location.hash更新为#/ regulations
在此之后,我可以看到当前的规定,当我点击其中任何一个时,我再次更新location.hash到#/ regulation / 1(或规则的任何数字):
这是合约:
我的应用程序在屏幕标题旁边的导航栏中有一个后退按钮,它有一个点击监听器:
$('back').click(function(e) {
e.preventDefault;
// window.history.back();
history.back();
});
当我在第二个屏幕(#/规则)时,它运行良好,它将我带回#/ panel。但是当我在第3个屏幕(#/ regulation / 1)时,它再次带到#/ panel而不是#/ regulations部分。
当我点击浏览器的后退按钮时效果非常好但是当我点击“我的后退”按钮时,它无法正常工作。
我已经阅读了一些关于此的主题,比如Mozilla的一个:
就像Mozilla说的那样,它应该像我点击浏览器的后退按钮一样工作,但事实并非如此。
我尝试过:
window.history.back();
window.history.go(-1);
history.back();
history.go(-1);
似乎无法解决任何问题。
有人可以帮忙吗?
答案 0 :(得分:1)
对不起,任何人都会犯错:
e.preventDefault(); (括号) #back (尖锐)就是问题所在。
然而,如果有人遇到这个问题,Mozilla就有这个理由,任何这些行就像用户点击浏览器的后退按钮一样:
$('#back').click(function(e) {
e.preventDefault();
window.history.back();
// window.history.go(-1);
// history.back();
// history.go(-1);
});