在主干中,我经常会使用类似...的东西来实例化视图
new mysite.some.namespace.View();
然后它将在我的视图中加载并将事件附加到 DOM。问题在于删除该视图然后再次实例化它。如果我加载视图两次,我的事件通常会加倍。我怎样才能消除这个?这是因为我的 el 设置为应用程序的包装元素吗?
什么是一个简单的解决方案?
在主干中,我经常会使用类似...的东西来实例化视图
new mysite.some.namespace.View();
然后它将在我的视图中加载并将事件附加到 DOM。问题在于删除该视图然后再次实例化它。如果我加载视图两次,我的事件通常会加倍。我怎样才能消除这个?这是因为我的 el 设置为应用程序的包装元素吗?
什么是一个简单的解决方案?
从评论中听起来你已经偏离了脊椎直而狭窄的路径进入杂草。正确的事件处理需要一些小心。如果您发布更多代码,我们可以提供更详细的建议,但是:
.remove()
在完成视图实例后调用。所有 DOM 事件绑定将被自动删除。this.el
)。this.el
。不要指定它。如果需要,可以tagName
在您的对象中使用,但视图应该是 A) 对该视图唯一且 B) 与 DOM 分离,直到视图外部的东西附加它(通常是路由器或复合视图管理器)。extend
el
您可以使用e.stopImmediatePropagation();
以防止事件传播。