对于easyui的tree控件,一般都使用expandAll来实现树形菜单所有层级的展开,但如果需要指定展开某层级则需要先获取对应层级节点,然后使用expand展开单一节点。
有一个类别的树形菜单分为了3层,首先先设置tree仅显示第一层,然后直接使用getChildren方法获取第一层的节点集合,再循环让其节点expend即可展开第二层,但为了第三层不被展开,所以在给tree传json数据时,传递一个level进行判断。
实例代码如下:
$(‘#’ + treeId).tree({
checkbox: false,
url: “/Material/MaterialClass/GetTreeDataJson?parent=0&ismarket=1”,
animate: true,
lines: true,
onClick: function (node) {
CheckTreeNode(node);
},
onBeforeExpand: function (node, param) {
},
onLoadSuccess: function (node, data) {
if (data) {
$(data).each(function (index, d) {
//只展开2级
if (this.state == ‘closed’ && this.level < 2) {
var children = $(‘#’ + treeId).tree(‘getChildren’);
for (var i = 0; i < children.length; i++) {
$(‘#’ + treeId).tree(‘expand’, children[i].target);
}
//全部打开 、合并操作
//$(‘#’ + treeId).tree(‘expandAll’);
//$(‘#’ + treeId).tree(“collapseAll”);
}
});
}
}
});