在骨干网我会经常使用实例化类似的观点...如何停止骨干事件冒泡
new mysite.some.namespace.View();
然后将在我看来,加载和附加事件到DOM。问题是删除该视图,然后再次实例化。如果我加载视图两次,我的事件通常会加倍。我怎样才能消除这一点?这是因为我的el被设置为应用程序的包装元素?
什么是这个简单的解决方案?
在骨干网我会经常使用实例化类似的观点...如何停止骨干事件冒泡
new mysite.some.namespace.View();
然后将在我看来,加载和附加事件到DOM。问题是删除该视图,然后再次实例化。如果我加载视图两次,我的事件通常会加倍。我怎样才能消除这一点?这是因为我的el被设置为应用程序的包装元素?
什么是这个简单的解决方案?
您可以使用e.stopImmediatePropagation();
以防止事件传播。
从评论听起来好像你偏离了骨干直线和狭窄的路径进入杂草。正确的事件处理需要一定的关注。但是,如果您发布的代码较多,我们可以提供更详细的建议,但是:
.remove()
。所有DOM事件绑定将被自动删除。this.el
)的怪事。this.el
。不要指定它。如果需要,请在您的extend
对象中使用tagName
,但视图的el
应该是A)该视图唯一的,并且B)从DOM分离,直到视图外部的某个东西(通常是路由器或复合视图管理器)。
是否有可能将视图初始化为另一个视图中的元素?因此,适用于父视图和子视图的任何绑定都会被调用两次... – rudolph9 2013-03-10 02:05:39
您是否正确调用了视图上的'.remove()'(而不是覆盖它)?它应该自动清理它的事件。 – loganfsmyth 2013-03-10 02:06:39
@ rudolph9我确实在主视图中加载了一个子视图,并且它们都具有相同的“el”。我认为这可能是问题。我没有调用.remove(),如果我这样做,它会破坏我的应用程序,删除主视图。 – 2013-03-10 02:10:21