jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 使用Ajax / JSON搜索jsTree而不调用URL大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我非常感谢以下方面的一些帮助:

我有一个通过URL加载JSON数据的jsTree.所有数据都已预加载.

我需要做的是更改搜索功能,根据用户输入通过AJAX用新的JSON数据重新加载整个树(因为我需要在后端进行更复杂的节点搜索).

首先,我要做的是获取jsTree代码调用我的URl.我开始使用与最初加载树相同的URl.

但是 – 这是我无法找到解决方案的问题 – 然成功调用URL以首先加载树,但当我键入一些搜索文本并单击“搜索”时,jsTree使用其常规内部搜索来突出显示节点,但是我提供的URL永远不会再被调用.

HTML是

我正在使用的jsTree初始化是:

var url = 

以及搜索代码片段:

$("#searchTree").click(function() {
    $("#myJsTree").jstree("search",$("#treeSearchText").val());
    return false;
});

我真的很感激任何帮助.

谢谢.

最佳答案
你最终得到了解决方案吗?

我现在正在做同样的事情 – 搜索插件选项的ajax部分就像jQuery ajax选项一样,对我来说我指定了类型:“POST”,成功函数和dataType:“JSON”,我的成功函数是在我的控制台中记录结果.

From the manual(不是世界上最好的手册),对于匹配的每个搜索结果,您需要指定它的路径而不包括匹配的节点ID.然后,jsTree将加载您提供的路径,内置突出显示将与文本匹配.例如.如果您的搜索匹配的条目位于#secondchild节点(3个级别),那么您需要将其传递给jsTree,以便搜索中加载该结果:

ArraY[ '#rootnode','#firstchild','#secondchild' ]

这将使用您已经指定的标准数据检索方法加载这三个节点(如果它们尚不存在于DOM中).使用您的JSON结果进行一些测试,通过硬编码您之后的路径来查看它的工作原理.

注意:如果您在Ajax请求中定义了成功方法,则需要返回您在方法中获得的数据对象,这将允许jsTree解析它并执行其操作.在我的情况下,我有console.log(数据),它没有做任何事情,因为我之后没有返回数据.

解决了我的问题,而不是返回包含每个匹配元素的路径的多个数组,您需要返回包含唯一节点ID的单级数组,并且搜索插件按预期解析它并在客户端搜索之前加载新的数组执行.

请看这里我的解释:https://stackoverflow.com/a/20316921/2812842

大佬总结

以上是大佬教程为你收集整理的jquery – 使用Ajax / JSON搜索jsTree而不调用URL全部内容,希望文章能够帮你解决jquery – 使用Ajax / JSON搜索jsTree而不调用URL所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。