您可以在骨干网视图中实现自定义delegateEvents()undelegateEvents()

Backbone.View构造函数自动调用委托事件。我以为您使用Backbone.View.prototype.remove删除视图时会调用undelegateEvents,但这不是事实。

那么,哪种是手动执行此操作的最佳方法?我用以下代码覆盖了remove()视图方法:

Backbone.View.prototype.remove = function() {
    var remove = Backbone.View.prototype.remove;

    if (this.undelegateEvents) {
      this.undelegateEvents();
    }

    return remove.apply(this, arguments);
};


它有效,但是我不知道这是否是最佳选择。我应该怎么做?

最佳答案

由于亩太短,这才是问题的真正答案


  手动执行此操作的最佳方法是什么?


不是。事件绑定到DOM元素,如果这些元素消失了,绑定也将绑定。 undelegateEvents设计用于不删除DOM元素,但仍要从中删除事件绑定的情况(例如,当您为视图设置新元素时)。

关于javascript - 自定义Backbone.View undelegateEvents(),它如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14144445/

10-12 19:17