gpt4 book ai didi

backbone.js - backbone.js 中的 delegateEvents

转载 作者:行者123 更新时间:2023-12-02 23:44:20 28 4
gpt4 key购买 nike

谁能解释一下backbone.js中delegateEvents的作用吗? The documentation没有帮助我理解。

我的确切用例是:

我有一个主视图 X 和一个内部 View Y。它们工作得很好,但是如果我转到主视图 Z 然后返回到 X(重用,而不是重新创建),那么附加到 Y 子元素的事件就会丢失。 delegateEvents 解决了这个问题,但是我想了解为什么。

最佳答案

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

Backbone 的 View 元素仍然包含 .el,但在 DOM 中重新插入后,jQuery 元素已丢失所有绑定(bind)的监听器。

有几种解决方案:

  1. 完全销毁 View 元素,包括使用新的 destroy 解除所有模型/ Controller 事件的​​绑定(bind)。方法(目前仅在github中,它将在Ba​​ckbone的下一个版本中添加)并在返回时创建一个新 View (而不仅仅是缓存和重新渲染) - 我的首选方法

  2. 创建一个方法(或扩展删除)以使用 jQuery 的 detatch这显然与删除相同,而不会丢失事件绑定(bind) - 还没有这样做,但看起来它会起作用

  3. 在每次渲染中调用 .delegateEvents() - 您当前正在执行的操作

希望这有帮助。

关于backbone.js - backbone.js 中的 delegateEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11073877/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com