昨日、jQueryとjsTreeプラグインを試してみて、サーブレットへのAJAX呼び出しでツリーを正常にロードできるようにしました。ここで、ロード後にツリーですべてのノードを開いてもらいたいので、ajax属性にsuccess関数を追加しました。ただし、open_all()メソッドを正しく機能させることができないようです。私はjQueryの操作に非常に慣れていないので、間違っているのは単純なことだと思います。
Firebugは、メソッド名の入力ミスによるダムエラーを除外するエラーを表示していません。私はドキュメントをチェックしました、そして私は私が読んだものに従ってすべてを正しくやっていると思います。ツリーは正しくロードされていますが、ページのロード後にすべてのノードが開かれるわけではありません。
Firefox3.6.8でjQuery1.4.2とjsTree1.0rc2を使用しています。
ツリーをロードし、ツリー内のすべてのノードを開こうとするために使用しているコードは次のとおりです。
// 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"]
});