【问题标题】:Custom node event handlers lost when filter extension used使用过滤器扩展时自定义节点事件处理程序丢失
【发布时间】:2020-10-15 20:37:04
【问题描述】:

这有点极端,但我将自定义事件处理程序附加到嵌入在 fancytree 节点标题元素中的元素上。在 createNode() 回调期间,我使用 jQuery 选择器和 on() 将这些处理程序绑定到标题范围中的子元素。这种方法考虑了在展开文件夹节点时添加的新元素。但是,当我还使用过滤器扩展时,这些事件绑定会丢失 - 即使我重置过滤器以再次显示完整的树。过滤器重置后不会再次调用 createNode 回调,所以我想知道是否还有其他回调我应该用来绑定事件一次,这样过滤器就不会解除绑定。谢谢!

【问题讨论】:

  • 发布您的问题的最小代码示例。目前没什么可做的。

标签: javascript fancytree


【解决方案1】:

我已经确定了问题所在。 Fancytree 过滤器替换节点标题范围的 html/文本内容(无论是否隐藏),这会导致本地事件处理程序丢失。对此的部分修复是在父花式树容器 div 上附加委托事件处理程序。这在过滤器未激活时有效;但是,当应用过滤器时,突出显示节点的 html 内容将替换为过滤器扩展生成的新内容,因此这些节点上缺少任何自定义嵌入/活动 html 元素。除了编写特定于应用程序的树过滤器之外,我没有看到解决此问题的简单方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    相关资源
    最近更新 更多