您可以在骨干网视图中实现自定义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/