jsTreeで特定のノードを開く関数を作成しようとしていますが、ajax呼び出しからベースツリーが読み込まれる前に関数が実行されるという問題があります。jstreeデータがロードされたかどうかを確認し、ロードが完了するまで待つにはどうすればよいですか。以下は私が使おうとしている関数です。
function openNodes(tree, nodes) {
for (i in nodes) {
$('#navigation').jstree("open_node", $(nodes[i]));
}
}
次のコマンドで最初のツリーをロードしています
$("#navigation").jstree({
"json_data": {
"ajax": {
"url": function(node) {
var url;
if (node == -1) {
url = "@Url.Action("BaseTreeItems", "Part")";
} else {
url = node.attr('ajax');
}
return url;
},
"dataType": "text json",
"contentType": "application/json charset=utf-8",
"data": function(n) { return { id: n.attr ? n.attr("id") : 0, ajax: n.attr ? n.attr("ajax") : 0 }; },
"success": function() {
}
}
},
"themes": { "theme": "classic" },
"plugins": ["themes", "json_data", "ui"]
});