在我的意見我有:骨幹事件不綁定到DOM元素
events: {
'click .tab': 'doSomething',
},
則:
doSomething: function(){
...
},
這是我的觀點的重複結構,但由於某些原因,「DoSomething的'功能沒有被這個視圖中的點擊觸發。
何時將元素綁定到事件?
關於調試的任何提示?
在我的意見我有:骨幹事件不綁定到DOM元素
events: {
'click .tab': 'doSomething',
},
則:
doSomething: function(){
...
},
這是我的觀點的重複結構,但由於某些原因,「DoSomething的'功能沒有被這個視圖中的點擊觸發。
何時將元素綁定到事件?
關於調試的任何提示?
代表發生在視圖構造函數末尾的delegateEvents
方法期間。
http://documentcloud.github.com/backbone/docs/backbone.html#section-144
嘗試手動調用this.delegateEvents()
內render
返回this
之前。您是否在initialize
或render
方法中使用this.el
以骨幹網不期待的方式發送?
鏈接到這裏撥弄:http://jsfiddle.net/7xRak/
省略選擇器導致事件被綁定到視圖的根元素(this.el
)。
如果您class="tab"
是視圖,DOM元素意味着this.el
那麼你應該綁定事件作爲
events : {
'click' : 'dosomething'
}
,並像
<div class="tab">
<span class="inner"></span>
</div>
在this.el
內部元件,那麼你應該綁定事件作爲,
events : {
'click' : 'dosomething'
'click .inner' : 'onInnerClick'
}
這正是我上面所展示的,我很清楚這種模式。我想說的是,這種模式由於某種原因不起作用,所以有什麼方法來調試事件委派。 – captDaylight
嗯,我只是嘗試在渲染返回之前調用this.delegateEvents(),但它仍然沒有綁定事件。另外,我並沒有在初始化或渲染中搞亂this.el。唯一有效的工作是調用var that = this;此$( '標籤 ')上(' 點擊',函數(){that.doSomething();});在初始化的內部,但這種感覺像不好的形式... – captDaylight
我沒有搞亂$ el或el,但是將delegateEvents添加到我的渲染器中修復了事件綁定。 – Duke