2

在主干中,我经常会使用类似...的东西来实例化视图

new mysite.some.namespace.View();

然后它将在我的视图中加载并将事件附加到 DOM。问题在于删除该视图然后再次实例化它。如果我加载视图两次,我的事件通常会加倍。我怎样才能消除这个?这是因为我的 el 设置为应用程序的包装元素吗?

什么是一个简单的解决方案?

4

2 回答 2

3

从评论中听起来你已经偏离了脊椎直而狭窄的路径进入杂草。正确的事件处理需要一些小心。如果您发布更多代码,我们可以提供更详细的建议,但是:

  • 确保.remove()在完成视图实例后调用。所有 DOM 事件绑定将被自动删除。
  • 不要做一些古怪的事情,比如让 2 个视图实例引用同一个元素 ( this.el)。
  • 帮自己一个忙,不要乱来this.el。不要指定它。如果需要,可以tagName在您的对象中使用,但视图应该是 A) 对该视图唯一且 B) 与 DOM 分离,直到视图外部的东西附加它(通常是路由器或复合视图管理器)。extendel
于 2013-03-10T03:02:55.790 回答
0

您可以使用e.stopImmediatePropagation();以防止事件传播。

于 2013-03-10T02:11:39.157 回答