Javascript 如何使用;hashchange“;backbone.js事件代理中的事件?

Javascript 如何使用;hashchange“;backbone.js事件代理中的事件?,javascript,events,backbone.js,hashchange,Javascript,Events,Backbone.js,Hashchange,在我的backbone.js项目中,我需要一个只在window.location.hashchange时触发的方法。我找到了解决我的问题的替代方案 另外,我可以通过在我的主干视图initialize function中创建一个事件来解决这个问题,如下所示 Backbone.View.extend({ initialize() { $(window).on('hashchange',()=> { console.log('yes hashchan

在我的backbone.js项目中,我需要一个只在
window.location.hash
change时触发的方法。我找到了解决我的问题的替代方案

另外,我可以通过在我的主干视图
initialize function
中创建一个事件来解决这个问题,如下所示

Backbone.View.extend({   
  initialize() {
      $(window).on('hashchange',()=> {
            console.log('yes hashchange events works')
      });
  }
但我寻求一种使用
backbone.js的
eventDelegates
listenTo


提前感谢

您可以使用
主干。历史记录
用于此范围

历史充当全局路由器(每帧)来处理哈希更改 事件或pushState,匹配适当的路由,并触发 回调。你不应该自己创造一个 因为历史已经包含了一个

因为它会触发回调,所以您可以侦听
hashchange
事件:

Backbone.history.on("all", function (route, router) {
    console.log(window.location.hash);
});


您可以在此范围内使用
Backbone.history

历史充当全局路由器(每帧)来处理哈希更改 事件或pushState,匹配适当的路由,并触发 回调。你不应该自己创造一个 因为历史已经包含了一个

因为它会触发回调,所以您可以侦听
hashchange
事件:

Backbone.history.on("all", function (route, router) {
    console.log(window.location.hash);
});


尝试以下操作以初始化函数:

window.addEventListener('hashchange', function {
    var currentHash = location.hash;

    console.log('currentHash', currentHash);
})

尝试以下操作以初始化函数:

window.addEventListener('hashchange', function {
    var currentHash = location.hash;

    console.log('currentHash', currentHash);
})

不幸的是,它对我不起作用,因为Backbone.history的
hashChange
选项被设置为
false
,但这种解决方法起到了关键作用:“window.addEventListener('hashChange',this.handleHashChange”);不幸的是,它对我不起作用,因为Backbone.history的
hashChange
选项设置为
false
,但此解决方法解决了问题:`window.addEventListener('hashChange',this.handleHashChange);´