Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 取消绑定主干视图事件_Javascript_Events_Backbone.js_Coffeescript - Fatal编程技术网

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