如何阻止Backbone事件冒泡

时间:2013-03-10 01:56:34

标签: javascript jquery backbone.js

在骨干网中,我经常会使用类似......

之类的东西来实例化视图
new mysite.some.namespace.View();

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

这是一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:3)

从评论中可以看出,你已经偏离了脊柱的直线和狭窄的路径进入杂草。适当的事件处理需要一些小心。如果您发布更多代码,我们可以提供更详细的建议,但是:

  • 确保在完成视图实例后调用.remove()。将自动删除所有DOM事件绑定。
  • 不要让2个视图实例引用相同的元素(this.el)这样的蠢事。
  • 帮自己一个忙,不要惹恼this.el。不要指定它。如果需要,在tagName对象中使用extend,但视图的el应该是A)对于该视图是唯一的,并且B)与DOM分离,直到视图外部附着它(通常路由器或复合视图管理器)。

答案 1 :(得分:0)

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