Javascript 如何使用;hashchange“;backbone.js事件代理中的事件?
在我的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
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);´