通过单击 parent 名称 jsTree 获取 child 节点
Get child node by click on parent name jsTree
我正在通过 Json 文件获取我的树,它看起来像
root > parent1 > parent > child1 : child2 : child3 : etc
我已经添加了 eventHandler 和一些 children,通过点击我得到了一些东西,比如表格、信息等等。问题是当我点击 child1 时,我想要从其他 json 文件中添加一个树分支。我从 jsTree 文档中拿了例子
$('#tree').jstree({
'core' : {
'data' : {
'url' : function (node) {
return node.id === '#' ?
'ajax_roots.json' :
'ajax_children.json';
},
'data' : function (node) {
return { 'id' : node.id };
}
}
});
并将其设置为我的代码...
var $industry = $('#industry');
$industry.jstree({
"core" : {
"animation" : 0,
"check_callback" : true,
"themes" : {
"dot": true,
"stripes" : true,
"responsive": false
},
'data' : {
'url' : function (node) {
return node.id === '#' ?
'data/industry.json' :
'data/SDTM.json';
},
'data' : function (node) {
return { 'id' : node.id };
}
}
}});
然后我在 child 上添加了我要合并的 eventHandler
// ===== Click event on node =====
for(var i = 0; i < data.selected.length; i++) {
var node = data.instance.get_node(data.selected[i]).text;
if (node == "SDTM 3.1.1"){
//console.log(node);
$.jstree._reference($industry)
.create_node(
'select_node.jstree', 'after',
{ state: 'open', data: 'data/SDTM.json' }
); }
}
})
.jstree();
并且在控制台中出现下一个错误
Uncaught TypeError: $.jstree._reference is not a function
我做错了什么?
我会这样做:
for (var i = 0; i < data.selected.length; i++) {
var node = data.instance.get_node(data.selected[i]),
nodeText = node.text;
if (nodeText == "SDTM 3.1.1") {
//console.log(node);
// get data for the branch, need to write code here
var branchJson = ... data/SDTM.json
/*
branchJson should contain an array of objects,
each object may have keys like below
{
text : 'Node text'
children : [...],
state : { 'open' }
}
*/
// iterate nodes in received json
branchJson.forEach( function(obj) {
data.instance.create_node( node, obj, 'after' );
})
}
}
我正在通过 Json 文件获取我的树,它看起来像
root > parent1 > parent > child1 : child2 : child3 : etc
我已经添加了 eventHandler 和一些 children,通过点击我得到了一些东西,比如表格、信息等等。问题是当我点击 child1 时,我想要从其他 json 文件中添加一个树分支。我从 jsTree 文档中拿了例子
$('#tree').jstree({
'core' : {
'data' : {
'url' : function (node) {
return node.id === '#' ?
'ajax_roots.json' :
'ajax_children.json';
},
'data' : function (node) {
return { 'id' : node.id };
}
}
});
并将其设置为我的代码...
var $industry = $('#industry');
$industry.jstree({
"core" : {
"animation" : 0,
"check_callback" : true,
"themes" : {
"dot": true,
"stripes" : true,
"responsive": false
},
'data' : {
'url' : function (node) {
return node.id === '#' ?
'data/industry.json' :
'data/SDTM.json';
},
'data' : function (node) {
return { 'id' : node.id };
}
}
}});
然后我在 child 上添加了我要合并的 eventHandler
// ===== Click event on node =====
for(var i = 0; i < data.selected.length; i++) {
var node = data.instance.get_node(data.selected[i]).text;
if (node == "SDTM 3.1.1"){
//console.log(node);
$.jstree._reference($industry)
.create_node(
'select_node.jstree', 'after',
{ state: 'open', data: 'data/SDTM.json' }
); }
}
})
.jstree();
并且在控制台中出现下一个错误
Uncaught TypeError: $.jstree._reference is not a function
我做错了什么?
我会这样做:
for (var i = 0; i < data.selected.length; i++) {
var node = data.instance.get_node(data.selected[i]),
nodeText = node.text;
if (nodeText == "SDTM 3.1.1") {
//console.log(node);
// get data for the branch, need to write code here
var branchJson = ... data/SDTM.json
/*
branchJson should contain an array of objects,
each object may have keys like below
{
text : 'Node text'
children : [...],
state : { 'open' }
}
*/
// iterate nodes in received json
branchJson.forEach( function(obj) {
data.instance.create_node( node, obj, 'after' );
})
}
}