jquery - 当客户端尝试前进/后退时的 Backbone/jQuery 事件?

标签 jquery backbone.js

我正在构建一个主干应用程序,并正在学习如何使用 Backbone 的 PushState。我的应用程序的主视图是“Feed” View ,它显示一堆项目。当您单击某个项目时,它会加载一个新项目“显示” View ,并将其滑入页面。

现在,我已经成功地让我的应用程序使用pushState true 在浏览器历史记录中输入每一篇查看的文章的记录。

但是,当我“返回”浏览器历史记录时,我想触发一个事件以在显示 View 上执行一些操作。是否有主干或 jQuery 事件/函数可以用来检测用户何时选择在历史记录中前进/后退?

使用像这样的 Backbone 事件会很棒:

 events: {
  'dblclick':'test'
 },

最佳答案

如果您使用应用程序 Controller 的 View ,则可以使用此技巧将窗口对象作为 el 选项传递给 View 。通过 View 中保存的窗口对象,您将获得绑定(bind)到事件哈希的所有窗口事件,这样您就可以将诸如 popstate 之类的事件添加到您的哈希中,并且您将获得后退按钮事件。

我很快对此进行了测试,因此它应该适合您:

var App = Backbone.View.extend({
    events: {
      "popstate":          "onPopState"
    },
    onPopState : function onPopState() {
        console.log("onPopState");
    }
});
var MainApp = new App({ el : window });

关于jquery - 当客户端尝试前进/后退时的 Backbone/jQuery 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13805568/

相关文章:

backbone.js - Backbone 模型.destroy() : Is explicit removal from collection necessary?

jquery - 如何使用 Backbone.js 正确设置 CORS POST 请求

html - 如何使用嵌套的可折叠菜单?

javascript - 使用 Backbone.js 从数据库获取完整响应

javascript - JQuery.那么返回值是如何工作的

javascript - jQuery - 如何将 jQuery 对象转换为使用 getElementById 返回的对象类型

backbone.js - Backbone model.save() 导致 POST not PUT

javascript - 使用 Backbone.js 路由器进行路由而不是使用服务器端代码的原因

jquery 切换下拉菜单问题(css)

c# - 使用 AJAX 在 jquery 对话框内的 jquery 选项卡内加载 MVC 用户控件(C# Inside)