我在我的一个项目上运行了一个很好的 jsTree 实现。 JSON 数据由 PHP/Ajax 提供。我在使用搜索插件时遇到了一些麻烦。
jsTree's search plugin documentation 说:
...所以,我的服务器端搜索功能像这样返回匹配节点的路径(是的,我正在 json_encode
ing):
Array( '#1', '#2', '#3', '#5' ); // to match node #10 (leaf node) at the end
当这些值已存在于 DOM 中时,客户端搜索功能工作正常,但我无法让 jsTree 遵循此数组(或数组)中提供的路由以在元素不存在时填充树(例如当只有根节点打开时)。
我在 Stack 上看到过类似的问题,但没有任何答案。我重新发布是因为我需要了解它是如何工作的,并且在搜索插件文档之外没有找到太多关于如何使用 jsTree 进行异步搜索的信息。
基本上我想要它做的是使用我的搜索函数返回的数组来触发 jsTree 的加载事件(类似于
load_node_json
) - 我认为这应该直接开箱即用,但我遇到了麻烦。我几乎只是插入了 jsTree 文档中的示例代码。 最佳答案
我已经想通了。我的问题是我返回了多个数组,其中包含每个匹配节点的路径,如下所示:
Array(
Array('#root', '#child', '#sub-child'),
Array('#root', '#child', '#second-sub')
)
事实证明,jsTree 的搜索插件 A 只需要一个单级数组,而 B 将加载该数组中列出的所有节点,路径顺序不必像文档可能建议的那样完全准确。
因此,在我的 JSON 中,我返回一个包含 唯一 节点 ID 的数组,如下所示:
Array( '#root', '#child', '#sub-child', '#second-sub' )
...并且搜索插件正在按预期加载节点。
最后没什么特别的,但我认为 jsTree 文档应该对这个问题更具描述性,因为我已经看到其他人遇到了同样的问题并且没有答案。
关于php - jsTree 异步搜索 - 触发加载新节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20310156/