Javascript 取消绑定主干视图事件
我有坠落事件散列-Javascript 取消绑定主干视图事件,javascript,events,backbone.js,coffeescript,Javascript,Events,Backbone.js,Coffeescript,我有坠落事件散列- events: 'click #someButton : 'someFunction' 要关闭视图,我已尝试过 close: $("#someButton").unbind("click") 及 但某些函数仍被多次激发。如何从按钮解除此事件的绑定 我也试过了 $(@el).find("#someButton").unbind("click") as well Backbone.js视图事件被委托给视图的el(因此没有事件绑定到#someButton元素,而是当
events:
'click #someButton : 'someFunction'
要关闭视图,我已尝试过
close:
$("#someButton").unbind("click")
及
但某些函数仍被多次激发。如何从按钮解除此事件的绑定
我也试过了
$(@el).find("#someButton").unbind("click") as well
Backbone.js视图事件被委托给视图的
el
(因此没有事件绑定到#someButton
元素,而是当单击事件冒泡到el
时,它会检查事件是否来自与该选择器匹配的元素),例如,在这种情况下,要删除事件,您需要将其从el
中删除
$(this.el).off('click', '#someButton');
如果要删除所有委派事件,只需使用视图的方法即可Jack的解释和回答非常好。不幸的是,他的代码示例对我不起作用。而不是使用:
$(this.el).off('click', '#someButton');
我必须使用:
this.$el.off('click', '#someButton');
这对我来说很有意义,因为事件被绑定到
this.$el
对象。为了进一步添加,我使用了this.$el.off()代码>在子视图内初始化,以销毁与子视图关联的所有事件。同一事件调用数据刷新的次数为X
我使用以下方法看到了重复的目标:
var $target = $(e.currentTarget);
console.log($target);
我想在回答中添加一条评论,但我的声誉很低。mhmm,我尝试过这样做,但该函数仍会触发不止一次类似于$(this.$el).off(“单击”,“someButton”)代码>成功:)解除绑定有什么问题。单击(“单击”)事件?委派事件绑定到某个父级元素(在本例中是视图的el
),当事件冒泡时,它会检查该事件是否与指定的选择器匹配。事件没有绑定到实际的选择器(事实上,事件委派的一个常见用途是为将动态添加的元素绑定事件。您可能想在方法的jquery文档中了解更多关于它的信息。谢谢,我快疯了,我的事件在每次渲染时都会触发多次()打电话…总是转介
var $target = $(e.currentTarget);
console.log($target);