繁体   English   中英

取消绑定骨干网视图事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM