2010-09-10 24 views

Respuesta

65

Resulta que es es tan simple como llamar:

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

que necesitaba para actualizar sólo un nodo específico. Gracias por este útil consejo. – DavidHyogo

+42

jsTree API es dolor – kilonet

+2

Sí, no me gusta, incluso v3 aPI, al igual que Internet Explorer. –

9

para jstree3. Yo uso destruir() y crear de nuevo el árbol jstree correr) función (

+3

En realidad, es un evento, pero ayudó. 'tree.jstree (" destroy ")' –

44

En la versión 3 puede volver a cargar el árbol:

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

Esto funciona para mí, ya que los datos I JSON provienen de alguna otra función y no de AJAX – TechMaze

+0

Tuve que establecer el segundo parámetro de actualización en verdadero: tree.jstree (true) .refresh (falso verdadero); – jeffslofish

+0

al usar AJAX tuve que encadenar '.url' ->' jstree (true) .settings.core.data.url = "/ new/data/url" ' – okliv

0

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

Cuestiones relacionadas