Commencé à jouer avec jQuery et le plugin jsTree hier, et l'avoir chargé avec succès l'arbre avec un appel AJAX à une servlet. Maintenant, je voudrais que l'arbre ouvre tous les nœuds après le chargement, donc j'ai ajouté une fonction de succès à l'attribut ajax. Cependant, je n'arrive pas à obtenir la méthode open_all() pour fonctionner correctement. Je suis très novice dans le travail avec jQuery, donc je suppose que c'est quelque chose de simple que je fais mal. Firebug ne montre aucune erreur qui exclut l'erreur stupide de nom de méthode mal typée. J'ai vérifié la documentation et je pense que je fais tout correctement selon ce que j'ai lu. L'arborescence se charge correctement, mais n'ouvre pas tous les nœuds après le chargement de la page. J'utilise jQuery 1.4.2 et jsTree 1.0rc2 sur Firefox 3.6.8.Pourquoi jsTree open_all() ne fonctionne pas pour moi?
Voici le code que je utilise pour charger l'arbre et essayez d'ouvrir tous les nœuds dans l'arbre:
// Create the tree object
$("td#modelXML").jstree({
core : { "animation" : 0 },
//xml_data : {"data" : "" + xml, "xsl" : "nest"},
xml_data : {"ajax" :
{"url" : "servlet/GetModelHierarchy",
"type" : "post", "data" : { modelId : "" + modelId} },
"xsl" : "nest",
"success" : function(){
$(this).open_all(-1);
}
},
themes : {"theme" : "classic", "dots" : true, "icons" : true},
types : {
"types" : {
"category" : {
"valid_children" : ["factor"]
},
"factor" : {
"valid_children" : ["level"]
},
"level" : {
"valid_children" : "none",
"icon" : {
"image" : "${request.contextPath}/jsTree/file.png"
}
}
}
},
plugins : ["themes", "types", "xml_data"]
});
+1 Cette méthode a fonctionné pour moi, la réponse acceptée n'a pas fonctionné. – RedFilter
De toute façon pour faire ce travail après une actualisation? L'événement chargé ne semble pas déclencher. Y a-t-il un autre événement qui indique quand les données sont chargées? – Jens
pour jstree v3 vous avez maintenant besoin de ceci (j'ouvrais le nœud racine seulement) '.on ('loaded.jstree', fonction (événement, données) { data.instance.open_node ('0') })' – KeepCalmAndCarryOn