2014-06-30 73 views
2

在下面的代碼:如何從視圖中刪除事件一處理程序?

var AppView = Backbone.View.extend({ 

    events:{ 
     "click .button":"cancel" 
    }, 

    cancel:function() { 
     console.log("do something..."); 
    }, 

    onSomeEvent: function() { 
    this.$el.undelegate('.button', 'click', this.cancel); 
    } 
}); 
var view = new AppView(); 

我需要從與 'button' 類元素undelegate this.cancel處理程序。不幸的是,onSomeEvent方法中的this.$el.undelegate不起作用。

我該如何刪除該事件處理程序?

+0

嘗試'這個$ el.off( '點擊',」 .button ',thiscancel); ' –

+0

不幸的是,它不起作用:( – Erik

回答

3

嘗試類似:

.... 
onSomeEvent: function() { 
    this.delegateEvents(
     _(this.events).omit('click .button') 
    );  
} 

更新:

你的意思是這樣的:。

this.events[event] = "someEvent"; 
//call delegateEvents() on the view to re-bind events 
this.delegateEvents(); 
+0

感謝您的答覆,但我只需要訂閱只有this.cancel回調,而不是所有。 – Erik

+0

感謝您的答案。我可以添加一些事件this.events也? – Erik

+0

@Erik看到添加回答 –

相關問題