在骨幹網我會經常使用實例化類似的觀點...如何停止骨幹事件冒泡
new mysite.some.namespace.View();
然後將在我看來,加載和附加事件到DOM。問題是刪除該視圖,然後再次實例化。如果我加載視圖兩次,我的事件通常會加倍。我怎樣才能消除這一點?這是因爲我的el被設置爲應用程序的包裝元素?
什麼是這個簡單的解決方案?
在骨幹網我會經常使用實例化類似的觀點...如何停止骨幹事件冒泡
new mysite.some.namespace.View();
然後將在我看來,加載和附加事件到DOM。問題是刪除該視圖,然後再次實例化。如果我加載視圖兩次,我的事件通常會加倍。我怎樣才能消除這一點?這是因爲我的el被設置爲應用程序的包裝元素?
什麼是這個簡單的解決方案?
您可以使用e.stopImmediatePropagation();
以防止事件傳播。
從評論聽起來好像你偏離了骨幹直線和狹窄的路徑進入雜草。正確的事件處理需要一定的關注。但是,如果您發佈的代碼較多,我們可以提供更詳細的建議,但是:
.remove()
。所有DOM事件綁定將被自動刪除。this.el
)的怪事。this.el
。不要指定它。如果需要,請在您的extend
對象中使用tagName
,但視圖的el
應該是A)該視圖唯一的,並且B)從DOM分離,直到視圖外部的某個東西(通常是路由器或複合視圖管理器)。
是否有可能將視圖初始化爲另一個視圖中的元素?因此,適用於父視圖和子視圖的任何綁定都會被調用兩次... – rudolph9 2013-03-10 02:05:39
您是否正確調用了視圖上的'.remove()'(而不是覆蓋它)?它應該自動清理它的事件。 – loganfsmyth 2013-03-10 02:06:39
@ rudolph9我確實在主視圖中加載了一個子視圖,並且它們都具有相同的「el」。我認爲這可能是問題。我沒有調用.remove(),如果我這樣做,它會破壞我的應用程序,刪除主視圖。 – 2013-03-10 02:10:21