昨天开始使用 jQuery 和 jsTree 插件,并让它通过对 servlet 的 AJAX 调用成功加载树。现在,我想让树在加载后打开所有节点,所以我在 ajax 属性中添加了一个成功函数。但是,我似乎无法让 open_all() 方法正常工作。我对使用 jQuery 很陌生,所以我猜这很简单,我做错了。
Firebug 没有显示任何排除错误输入方法名称的愚蠢错误的错误。我检查了文档,我认为我根据我阅读的内容正确地做所有事情。树正在正确加载,但在页面加载后没有打开所有节点。
我在 Firefox 3.6.8 上使用 jQuery 1.4.2 和 jsTree 1.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"]
});