J'ai un jsTree, lancé avec le code suivant:JsTree noeuds ouverts par programmation, source de données est JSON/ajax
$(function() {
var grid = $('#group-tree');
grid
.jstree({
core: {
data: {
url: '<url to json source>',
data: function (node) {
return {'id': node.id};
}
},
'multiple': false,
'animation': false
}
});
});
Source des données JSON, getted via ajax. J'ai un tableau d'identifiants, que j'ai besoin de développer quand l'arbre est montré. Par exemple:
0
|_1
|_2
|_2.1
|_2.2
|_2.2.1
|_2.2.1.1
Ma liste est ['0', '2','2.2', '2.2.1']
.
J'ai essayé le code suivant (ajouté après var grid = $('#group-tree');
):
grid.on('ready.jstree', function (e, data) {
// ids of nodes I need to expand
var nodeValues = ['0', '2','2.2', '2.2.1'];
nodeValues.forEach(function (item) {
$('#group-tree').jstree(true).open_node(item);
});
});
nœud avec id = 0 ouvre avec succès, mais id = 2 pas ouvert, car il est toujours pas chargé quand j'ouvre id = 0 nœud. Comment appeler successivement open_node
pour ouvrir tous les nœuds dans mon cas?
Comment appeler successivement open_node
pour ouvrir tous les nœuds dans mon cas?
P.S. J'ai trouvé une réponse/solution simulaire paire here, mais je ne comprends pas le code, la solution n'a pas aidé.