2010-09-10 8 views

risposta

65

Risulta IS è semplice come chiamare:

tree.jstree("refresh"); 
24
var tree = jQuery.jstree._reference("#files"); 
tree.refresh(); 

o

var tree = jQuery.jstree._reference("#files"); 
var currentNode = tree._get_node(null, false); 
var parentNode = tree._get_parent(currentNode); 
tree.refresh(parentNode); 
+2

avevo bisogno di aggiornare un solo nodo specifico. Grazie per questo suggerimento utile. – DavidHyogo

+42

jsTree API is pain – kilonet

+2

Sì, non mi piace, anche v3 aPI, proprio come Internet Explorer. –

9

per jstree3. Io uso distruggere() e ancora una volta creare albero esecuzione jstree function()

+3

In realtà, è un evento, ma ha aiutato. 'tree.jstree (" destroy ")' –

44

alla versione 3 è possibile ricaricare l'albero:

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

Questo funziona per me, poiché i dati JSON provenienti da qualche altra funzione e non AJAX – TechMaze

+0

ho dovuto impostare il secondo parametro di refresh su true: tree.jstree (true) .refresh (falsa verità); – jeffslofish

+0

quando si usa AJAX ho dovuto concatenare '.url' ->' jstree (true) .settings.core.data.url = "/ new/data/url" ' – okliv

0

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