Załadowałem jsTree z wywołaniem AJAX, które zwraca dane JSON. Jak mogę odświeżyć drzewo, aby przeładować jego zawartość?Jak mogę odświeżyć zawartość jsTree?
Odpowiedz
Okazuje się, że jest to tak proste, jak wywoływanie:
tree.jstree("refresh");
var tree = jQuery.jstree._reference("#files");
tree.refresh();
lub
var tree = jQuery.jstree._reference("#files");
var currentNode = tree._get_node(null, false);
var parentNode = tree._get_parent(currentNode);
tree.refresh(parentNode);
dla jstree3. Używam zniszczyć() i ponownie utworzyć drzewo biegu jstree funkcja
Właściwie to wydarzenie, ale pomogło. 'tree.jstree (" destroy ")' –
W wersji 3() można przeładować drzewa:
$('#treeId').jstree(true).settings.core.data = newData;
$('#treeId').jstree(true).refresh();
To działa dla mnie, ponieważ dane JSON pochodzą z innej funkcji, a nie AJAX – TechMaze
Musiałem ustawić drugi parametr odświeżania na true: tree.jstree (true) .refresh (fałsz PRAWDA); – jeffslofish
podczas korzystania z AJAX musiałem połączyć '.url' ->' jstree (true) .settings.core.data.url = "/ new/data/url" ' – okliv
$('#treeId').data('jstree', false).empty().jstree(json);
Musiałem odświeżyć tylko jednego konkretnego węzła. Dzięki za tę przydatną wskazówkę. – DavidHyogo
jsTree API to ból – kilonet
Tak, nie podoba mi się to, nawet v3 aPI, podobnie jak Internet Explorer. –