Я загрузил jsTree с вызовом AJAX, который возвращает данные JSON. Еще один вызов AJAX выполняется, когда узел перемещается, и я хочу обновить дерево:
$("#my_tree").jstree({
"core": {
...
})
.on("move_node.jstree", function(node,nodes){
$.ajax({
url: "/path/to/ajax",
type: "POST",
data: {
action: "move",
...
},
success: function () {
$('#my_div').jstree(true).refresh(false, true);
}
});
})
Это работает, но я бы хотел, чтобы дерево открылось при refre sh. Это не работает, дерево остается свернутым.
success: function () {
$('#my_tree').jstree(true).refresh(false, true);
$('#my_tree').jstree("open_all");
[or even $("#my_tree").trigger("loaded.jstree"); ]
}
Однако «open_all» отлично работает, когда страница загружена:
.bind("loaded.jstree", function (event, data) {
$(this).jstree("open_all");
});
Как я могу обновить sh и открыть дерево? Спасибо за вашу помощь.
[Edit] Точность после ответа Томалака:
После того, как перемещение выполнено, некоторые процессы происходят на стороне базы данных, и новый контент должен быть загружен через AJAX затем отображается. Вот почему дерево обновляется.