简体   繁体   English

如何从视图中删除事件一处理程序?

[英]How to remove event one handler from view?

In the following code: 在下面的代码中:

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();

I need to undelegate this.cancel handler from elements with ' button ' classes. 我需要从带有' button '类的元素中取消删除this.cancel处理程序。 Unfortunately this.$el.undelegate in onSomeEvent method doesn't work. 不幸的是,onSomeEvent方法中的this.$el.undelegate不起作用。

How could I remove that event handler? 如何删除该事件处理程序?

try something like: 尝试类似:

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

update: 更新:

do you mean like: 你的意思是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM