2010-09-10 2 views

Odpowiedz

65

Okazuje się, że jest to tak proste, jak wywoływanie:

tree.jstree("refresh"); 
24
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); 
+2

Musiałem odświeżyć tylko jednego konkretnego węzła. Dzięki za tę przydatną wskazówkę. – DavidHyogo

+42

jsTree API to ból – kilonet

+2

Tak, nie podoba mi się to, nawet v3 aPI, podobnie jak Internet Explorer. –

9

dla jstree3. Używam zniszczyć() i ponownie utworzyć drzewo biegu jstree funkcja

+3

Właściwie to wydarzenie, ale pomogło. 'tree.jstree (" destroy ")' –

44

W wersji 3() można przeładować drzewa:

$('#treeId').jstree(true).settings.core.data = newData; 
$('#treeId').jstree(true).refresh(); 
+3

To działa dla mnie, ponieważ dane JSON pochodzą z innej funkcji, a nie AJAX – TechMaze

+0

Musiałem ustawić drugi parametr odświeżania na true: tree.jstree (true) .refresh (fałsz PRAWDA); – jeffslofish

+0

podczas korzystania z AJAX musiałem połączyć '.url' ->' jstree (true) .settings.core.data.url = "/ new/data/url" ' – okliv

0

$('#treeId').data('jstree', false).empty().jstree(json);