gpt4 book ai didi

ajax - jsTree-按需通过ajax加载子节点

转载 作者:行者123 更新时间:2023-12-03 08:53:02 27 4
gpt4 key购买 nike

我正在尝试让jsTree与子节点的按需加载一起使用。我的代码是这样的:

jQuery('#introspection_tree')。jstree({
“json_data”:{
“ajax”:{
网址:“http:// localhost / introspection / introspection / product”
}
},
“plugins”:[“主题”,“json_data”,“ui”]
});

调用返回的json是

[
{
“data”:“套件1”,
“attr”:{
“id”:“1”
},
“ child ”:[
[
{
“数据”:“硬件”,
“attr”:{
“id”:“2”
},
“ child ”:[

]
}
],
[
{
“数据”:“软件”,
“attr”:{
“id”:“3”
},
“ child ”:[

]
}
]
]
}
.....
]

每个元素可以有很多 child ,树会很大。当前,这将立即加载整个树,这可能需要一些时间。当用户打开子节点时,我该怎么做以实现按需加载?

提前致谢。

最佳答案

Irishka向我指出了正确的方向,但并不能完全解决我的问题。我在弄弄她的答案,然后想到了这个。仅为了清楚起见,使用了两个不同的服务器功能。第一个列出了顶层的所有产品,第二个列出了给定productid的所有子级:

jQuery("#introspection_tree").jstree({
"plugins" : ["themes", "json_data", "ui"],
"json_data" : {
"ajax" : {
"type": 'GET',
"url": function (node) {
var nodeId = "";
var url = ""
if (node == -1)
{
url = "http://localhost/introspection/introspection/product/";
}
else
{
nodeId = node.attr('id');
url = "http://localhost/introspection/introspection/children/" + nodeId;
}

return url;
},
"success": function (new_data) {
return new_data;
}
}
}
});

从函数返回的json数据是这样的(注意state = close在每个节点中):

[
{
“data”:“套件1”,
“attr”:{
“id”:“1”
},
“state”:“关闭”
},
{
“数据”:“KPCM 049”,
“attr”:{
“id”:“4”
},
“state”:“关闭”
},
{
“data”:“Linux BSP”,
“attr”:{
“id”:“8”
},
“state”:“关闭”
}
]

不需要静态数据,该树现在在每个级别上都是完全动态的。

关于ajax - jsTree-按需通过ajax加载子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078534/

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