我正在我的网站上工作,允许人们发布内容(类似于推特),并试图通过jQuery / Ajax使其更加流线型。人们可以选择发布许多类别,每个类别都按主要类别或部分进行组织。
每次用户点击左侧导航面板中的某个部分时,该项目会向上移动到列表顶部并向下展开,显示该部分中的所有类别。发生的另一件事是主要内容区域淡出,并且属于该部分和类别的新内容(用户帖子)。到目前为止,这一直很好,看起来很棒!
但是,请单击某个部分和类别以查看该特定类别中的所有帖子。然后你点击帖子进入帖子内部,看到所有的信息,评论等。现在,你想回到原来所以你按下你的后退按钮。现在这样做会返回并再次显示主页面细节,而不是您之前选择要查看的类别。
我添加了以下代码来显示选择哪个类别(例如:“/#/ community”),并检查哈希然后触发“click”事件以触发该类别再次显示。
last_known_hash = location.hash;
window.setInterval(function() {
if(last_known_hash != location.hash) {
$('#categories-panel a[name="'+ location.hash.substring(2) +'"]').click();
last_known_hash = location.hash;
}
}, 500);
点击后,它仍会在网址中显示“#/ community”,但不会触发点击。这很奇怪,因为如果您在URL中键入“#/ community”,它就能正常工作。因此,我不确定为什么单击“返回”时没有正确触发它。我不确定这是否是最佳/正确的方法,但这是我现在所能想到的。也许会做一个会议?一如既往,任何帮助将不胜感激:)
P.S。我知道点击事件可以自行运行,因为当我在firebug中运行它时,它可以完美运行。
摘要:当有人在浏览器中点击“返回”时,我需要它去他们最后的位置,例如:sitehere.com/#/community - 然后触发点击事件以显示“社区”类别内容再一次。
答案 0 :(得分:1)
historyJS和HTML5历史记录popState和pushState。这些是你需要学习做的事情。
答案 1 :(得分:0)
我认为这个插件:https://github.com/cowboy/jquery-hashchange解决了您的问题