我已经成功使用JSON数据使jsTree工作: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>