簡體   English   中英

如何在骨干.js事件委托中使用“ hashchange”事件?

[英]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 eventDelegateslistenTo的解決方案

提前致謝

您可以將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM