在backbone.js中的delegateEvents

任何人都可以解释我什么delegateEvents在backbone.js? The documentation没有帮助我明白。

我的确切用例是:

我有一个主视图X与内部视图Y.他们工作很好,但如果我去主视图Z,然后回到X(重用,不重新创建),然后附加到Y子元素的事件丢失。 delegateEvents解决这个问题
我想明白为什么。

基本上,当调用.remove()时,它是jQuery remove函数的代理,它从DOM中删除元素,以及来自绑定到元素的事件哈希的所有相关事件。

Backbone的View元素仍然包含.el,但是在重新插入DOM时,jQuery元素丢失了所有绑定的侦听器。

有几个解决方案:

>完全销毁视图元素,包括使用新的destroy方法解除所有模型/控制器事件(目前仅在github中,它将被添加到Backbone的下一个版本中),并在返回时创建一个新视图(而不仅仅是缓存和重新渲染) – 我的首选方法
>创建一个方法(或扩展删除)使用jQuery的detatch显然是相同的删除而不会丢失事件绑定 – 没有做,但似乎它会工作
>在每个渲染中调用.delegateEvents() – 你现在正在做什么

希望这可以帮助。

http://stackoverflow.com/questions/11073877/delegateevents-in-backbone-js

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在backbone.js中的delegateEvents