我在我的一个项目上运行了一个很好的 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/

10-13 01:33