我有2个JSTree窗口,第一个显示目录树,第二个显示所选目录中的文件(不是目录)。
var dirTree = $('#folders').jstree({
'core' : {
'data' : {
'url' : '/myUrl?action=tree',
'data' : function (node) {
return { 'id' : node.id };
}
}
}});
var fileTree = $('#files').jstree({
'core' : {
'data' : {
'url' : '/myUrl?action=files',
'data' : function (node) {
return { 'id' : node.id };
}
}
}});
// listen for event
$('#folders').on('select_node.jstree', function (e, data) {
fileTree.jstree("refresh");
}).jstree();
以上是我的代码的当前状态,但我很欣赏select中的jstree调用需要以某种方式进行更改。
单击目录时,我希望使用所选目录节点的内容完全刷新我的文件列表。我相信我想问一下刷新文件窗口时如何设置基本节点,但如果你认为你知道更好的方法,请告诉我。
答案 0 :(得分:0)
如果有人有任何其他想法,欢迎您发布替代答案。
我目前的解决方案是设置一个baseId,用作文件窗口的id,然后刷新....
var baseId = '#';
var dirTree = $('#folders');
var fileTree = $('#files');
dirTree.jstree({
'core' : {
'data' : {
'url' : '/myUrl?action=tree',
'data' : function (node) {
return { 'id' : node.id };
}
}
}});
fileTree.jstree({
'core' : {
'data' : {
'url' : '/myUrl?action=files',
'data' : function (node) {
return { 'id' : baseId };
}
}
}});
// listen for event - could chain this with instantiation??
dirTree.on('select_node.jstree', function (e, data) {
baseId = data.selected[0];
fileTree.jstree("refresh");
}).jstree();