我尝试检测用户如何到达路线。我想有3个案例:
有没有办法检测3个案例或 - 这对我来说足够 - 检测用户是否在第二个案件中来到路线?
为什么? 在我的项目中,我有一个List-Layout。当我向下滚动并单击此列表中的链接时,将呈现新模板,但由于列表中的滚动,窗口现在具有scrollTop值。
我用这个解决了这个问题:
Router.configure({
onAfterAction : function () {
jQuery(window).scrollTop(0);
}
});
在每次加载页面后使用此修复程序,页面将滚动到顶部(与其正常情况一样)。
可是:
当我点击列表中的链接然后单击浏览器中的“后退”按钮(history.back)时,页面也会滚动到顶部(因为我的修复) - 没有修复页面将自动跳转到最后一个位置。
因此我需要这样的东西:
Router.configure({
onAfterAction : function () {
var historyBack;
historyBack = CheckIfHistoryBackWasClicked();
if (!historyBack) jQuery(window).scrollTop(0);
}
});
有人有任何想法吗?
答案 0 :(得分:1)
尝试向您的链接添加click
事件处理程序,并在其中设置scrollToTop
会话变量:
"click a": function(e) {
Session.set("scrollToTop", true);
return true;
}
然后,做这样的事情:
Router.configure({
onAfterAction : function () {
if (Session.get("scrollToTop") == true) {
jQuery(window).scrollTop(0);
Session.set("scrollToTop", false);
}
}
});