[英]Unbind Backbone View Events
我有下降事件哈希-
events:
'click #someButton : 'someFunction'
关闭我尝试过的视图
close:
$("#someButton").unbind("click")
和
`close:
$("#someButton").remove()`
但是someFunction仍然被多次触发。 如何从按钮取消绑定此事件?
我也尝试过
$(@el).find("#someButton").unbind("click") as well
Backbone.js视图事件被委托给视图的el
(因此,没有事件绑定到#someButton
元素,而是当click事件冒泡到el
它会检查该事件是否来自与该选择器匹配的元素),例如,要删除该事件,您需要将其从el
删除,例如
$(this.el).off('click', '#someButton');
如果要删除所有委托事件,则可以使用视图的undelegate方法
杰克的解释和回答很棒。 不幸的是,他的代码示例对我不起作用。 而不是使用:
$(this.el).off('click', '#someButton');
我不得不使用:
this.$el.off('click', '#someButton');
这对我来说很有意义,因为该事件已绑定到this.$el
对象。
为了进一步说明,我使用了this.$el.off();
在子视图中的初始化内部,以销毁与该子视图相关的所有事件。 相同事件将触发X次调用数据刷新的次数。
我看到重复的目标使用:
var $target = $(e.currentTarget);
console.log($target);
我会在答案中添加评论,但我的声誉不高。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.