【发布时间】:2018-07-01 09:37:53
【问题描述】:
我有 jsTree 处理 JSON 数据:JSON 数据代表服务器的文件系统,用户可以从树中选择一个文件夹,然后将其添加到文件夹输入字段中)。我不希望在没有提供文件系统的前三个级别的情况下加载页面。但是,我不会解析整个文件系统,因为那会花费很长时间。
我可以使用 JSON 数据预填充 jsTree 并在用户打开未预填充的树的更下方的节点时使用 Ajax,还是我也必须使用 Ajax 进行初始加载?
下面我显示了我当前的代码(没有任何 Ajax),但为了简洁起见,仅将数据检索到一个级别:它从服务器返回 C:\ 和 E:\ 文件系统。这可行,但我不清楚当用户尝试打开层次结构更下方的节点时如何将 Ajax 引入此。
<label for="folder">Selected Folder</label>
<input type="text" name="folder" id="folder">
<br>
<script type="text/javascript">
function createJSTree(jsondata)
{
$('#jstree').jstree(
{
"plugins" : ["themes","html_data","ui","cookie"],
'core':
{
'data': jsondata
}
}
)
.bind("select_node.jstree",
function (e, data)
{
var objNode = data.instance.get_node(data.selected);
document.getElementById('folder').value=objNode.id;
}
)
;
}
$(function() { var jsondata ={"text":"pclaptop","children":[{"id":"C:\\","text":"C:\\","children":[]},{"id":"E:\\","text":"E:\\","children":[]}]}; createJSTree(jsondata); })
</script>
【问题讨论】:
-
你用的是什么版本的jsTree?
-
@JonathanChaplin 我认为的最新版本,3.3.5