[英]How to use “hashchange” event in backbone.js event delegates?
在我的ribs.js項目中,我需要一個僅在window.location.hash
更改時才觸發的方法。 我在這里找到了解決我問題的替代解決方案。
另外,我可以通過在骨干視圖的initialize function
創建一個事件來解決此問題,如下所示
Backbone.View.extend({
initialize() {
$(window).on('hashchange',()=> {
console.log('yes hashchange events works')
});
}
但是我正在尋找一個使用backbone.js's
eventDelegates
backbone.js's
eventDelegates
或listenTo
的解決方案
提前致謝
您可以將Backbone.history
用於此范圍。
歷史記錄用作全局路由器(每幀),以處理hashchange事件或pushState,匹配適當的路由並觸發回調。 因為Backbone.history已經包含其中之一,所以您不必自己創建其中之一。
因為它觸發了回調,所以您可以偵聽hashchange
事件:
Backbone.history.on("all", function (route, router) {
console.log(window.location.hash);
});
要么
Backbone.history.on("route", function () {
console.log(window.location.hash);
});
試試這個初始化函數:
window.addEventListener('hashchange', function {
var currentHash = location.hash;
console.log('currentHash', currentHash);
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.