如果您只想取消绑定特定事件,则可以使用以下内容:
addSendCommentButton : function(event) {
this.$el.off('click.delegateEvents' + this.cid, 'textarea');
}
Backbone 使用on
带有特定命名空间的 jQuerydelegateEvents
加上cid
.
恐怕这也将事件与其他文本区域解除绑定。之所以如此,是因为该off
方法需要与传递给on
jQuery 文档所说的相同的选择器:
要删除特定的委托事件处理程序,请提供选择器参数。选择器字符串必须与附加事件处理程序时传递给 .on() 的字符串完全匹配。
建议
你可以有一个类似的行为改变你的代码:
var StreamView = Backbone.View.extend({
el: "#stream",
events: {
"click textarea.unfinished" : "addSendCommentButton"
},
addSendCommentButton : function(event) {
$(event.target).removeClass("unfinished");
}
});
使用更具体的选择器来附加事件并在调用回调时删除该类。