且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

拆散骨干观活动

更新时间:2022-10-15 17:29:53

Backbone.js的观看赛事都被委托给视图的(所以没有必然的事件 #someButton 元素,而是当一个click事件冒泡到它检查事件是否从来到元素选择匹配),既然如此删除您需要从,例如:

删除事件
  $(this.el).off('点击','#someButton');

如果您要删除所有委托事件,你可以只使用视图的 undelegate 方法

I have the falling events hash -

events:
  'click #someButton : 'someFunction'

To close the view I have tried

close:
  $("#someButton").unbind("click")

and

   `close:

       $("#someButton").remove()`

But someFunction is still being fired more than once. How do I unbind this event from the button?

I've also tried

$(@el).find("#someButton").unbind("click") as well 

Backbone.js view events are delegated to the view's el (so there is no event bound to your #someButton element but rather when a click event bubbles up to the el it checks to see if the event came from an element matching that selector), that being the case to remove the event you need to remove it from the el, for example

  $(this.el).off('click', '#someButton');

If you want to remove all delegated events you can just use the view's undelegate method