我非常感谢以下方面的帮助:
我有一个通过 URL 加载了 JSON 数据的 jsTree。所有数据都是预加载的。
我需要做的是更改搜索功能,根据用户输入通过 AJAX 使用新的 JSON 数据重新加载整个树(因为我需要在后端进行更复杂的节点搜索)。
首先,我要做的就是让 jsTree 代码调用我的 URL。我从最初加载树时使用的相同 URL 开始。
但是 - 这是我找不到解决方案的问题 - 虽然成功调用 URL 以首先加载树,但当我键入一些搜索文本并单击“搜索”时,jsTree 使用其正常的内部搜索来突出显示节点,但是我提供的 URL 再也不会被调用。
HTML是
<div>
<form>
<div>
<input id="treeSearchText" type="text" />
<button id="searchTree" class="btn">Search</button>
<button id="clearSearch" class="btn">Clear</button>
</div>
</form>
</div>
<div id="myJsTree" style="height: 100%;"></div>
我正在使用的 jsTree 初始化是:
var url = <my_url>;
$("#myJsTree").jstree({
"json_data" : {
async : true,
"ajax" : {
"url" : url
}
},
"search": {
"case_insensitive" : true,
"ajax" : {
"url" : url
}
},
'ui' : {
'select_limit' : 1,
'initially_selected' : [${myId}],
},
"plugins" : [ "json_data", "search", "sort", "ui", "themeroller" ],
});
以及搜索代码片段:
$("#searchTree").click(function() {
$("#myJsTree").jstree("search", $("#treeSearchText").val());
return false;
});
我真的很感激任何帮助。
谢谢。