如何从视图中删除事件处理程序
How to remove event one handler from view?
在以下代码中:
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
'类的元素中取消委托this.cancel
处理程序。不幸的是,this.$el.undelegate
在onSomeEvent方法不工作。
如何删除该事件处理程序?
试试这样写:
....
onSomeEvent: function() {
this.delegateEvents(
_(this.events).omit('click .button')
);
}
更新:
你的意思是:
this.events[event] = "someEvent";
//call delegateEvents() on the view to re-bind events
this.delegateEvents();
相关文章:
- jQuery使用.of()删除事件处理程序时出现的问题
- 如何删除DOM事件处理程序的重复JavaScript代码
- AngularJS:如何从指令添加的元素中删除事件处理程序
- 删除节点的内联事件处理程序/属性
- 从 html5 画布中删除所有事件处理程序
- 删除节点后的 JavaScript 事件处理程序
- PhotoSwipe JS库,删除特定的事件处理程序
- 跨浏览器事件处理程序(添加、删除、触发器)
- Javascript:在删除相关HTML时,我应该删除一个事件处理程序吗
- 使用jQuery.off或.unbind删除和添加滚动事件处理程序
- 正确删除匿名函数事件处理程序
- 如何在不引用处理程序函数的情况下删除事件处理程序
- 如果我不删除事件处理程序'我不知道用于创建此处理程序的原始选择器
- 如何删除事件处理程序文档.打开
- 更改DIV内的文本将删除事件处理程序
- 从Greasemonkey删除事件处理程序
- 如何从JWPlayer实例中删除事件处理程序
- 如何从视图中删除事件处理程序
- 是否需要手动删除事件处理程序
- 我应该在removeChild之前从元素中删除事件处理程序吗?