我正在创建一个非常基本的网站,其中包含一系列项目,您可以点击这些项目,然后查看有关该项目的更多详细信息。
我遇到的问题是,当您向下滚动项目列表,然后转到项目详细信息视图时,它不会将滚动位置重置为顶部。所以你处于新页面的底部,这很烦人。
我对Backbone.js很新 - 有没有人遇到过这个?
答案 0 :(得分:1)
我在我的项目中发现了同样的问题(有骨干)。使用的解决方案是:
App.Router.on("route", function(data){
$(document).scrollTop(0);
});
因此,每次调用路由时,在呈现新视图之前,文档页面都会自动返回顶部。我希望可以提供帮助。 记住你需要在一次“绑定”这个,而不是每个视图;)
编辑: 如果在创建新页面时没有“触发”路由,请应用此行
$(document).scrollTop(0);
关于正确的事件:)
EDIT2: 看着你的代码(最后的部分)
var projects = new App.Views.Projects();
var project = new App.Views.Project();
var theRouter = Backbone.Router.extend({
routes: {
'': 'home',
':id': 'project'
},
home: function() {
projects.render();
},
project: function(id) {
project.render({id: id});
}
});
var router = new theRouter();
router.on('route', function() {
// MAKE SURE ROUTING BIND IS CALLED
console.log("Hey, im routing !!!");
$(document).scrollTop(0);
});
Backbone.history.start();
试试这个