【发布时间】:2012-05-24 08:57:33
【问题描述】:
在视图remove() 方法中调用undelegateEvents() 是一种不好的做法吗?为什么骨干人员默认不包含它?
我意识到,当简单地重新初始化一个视图变量时,我遇到了很多绑定问题。尽管undelegateEvents() 在创建新视图时被自动调用,但它正在尝试取消对新实例化视图的事件的委托,而不是前一个视图。因此,除非每次都手动调用它,否则幽灵事件回调仍然存在并搞砸我的应用程序。
处理此问题的最佳方法是什么?
【问题讨论】:
-
您是否在切换视图而不是创建新视图时重复使用
el? jQuerydelegate绑定到视图的el。 -
@muistooshort 是的,我经常重复使用同一个 DOM 容器,并将其提供给视图,而不是每隔一段时间创建和附加一个新容器。这就是为什么删除幽灵回调至关重要
-
然后在清理过程中调用
undelegateEvents是可以预料的并且很好。remove没有undelegateEvents因为它会杀死整个el并且没有意义。 -
如果您有自定义的
remove()方法,请在您的问题中发布。