Программно расширяющиеся узлы в jstree с загрузкой ajax
У меня есть дерево, созданное с помощью jstree, которое загружается частично и загружается через плагин json_data, когда вы расширяете узлы. Вот'Суть кода:
$("#TreeViewDiv")
.jstree(
{
json_data:
{
ajax:
{
url: "/Website/GetNodes",
data: function (node) {
//do some stuff to compile data for backend here
return {
//insert data for backend here
};
},
error: function () {
$("#TreeViewDiv").html("Error initializing tree");
}
}
},
plugins: ["json_data", "ui"]
});
Затем я хочу расширить некоторые узлы и выбрать конечный узел, в зависимости от того, какой пользователь обращается к сайту. Я делаю это в цикле следующим образом:
var nodeValues = [Parent, firstChild, leaf];
for (var j = 0; j < nodeValues .length-1; j++) {
$("#TreeViewDiv").jstree("open_node", $("input[value='" + nodeValues [j] + "']"));
}
Открытие родительского узла работает нормально, и firstChild открывается, когда отображается дерево, но узел firstChild не открыт. Если я снова запускаю цикл, первый ребенок открывается успешно, чтобы показать листовой узел.
Я думаю, что запрос неt завершено, а узел дерева firstChild не 'не существует, когда вышеуказанный цикл пытается открыть его. Есть ли способ дождаться загрузки узлов, прежде чем пытаться открыть следующий узел? Спасибо!