好像沒找到現成的,就自己寫了一個demo。
效果如下:

代碼:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<script src="../jquery-2.1.4.js"></script>
<link href="zTree_v3/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
<script src="zTree_v3/js/jquery.ztree.core-3.5.js"></script>
<script type="text/javascript">
//獲取當前父節點 參數:等級
var getNodeByLevel = function (arr, level) {
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (item.level == level) {
return item;
}
}
return null;
};
//折疊節點 非當前父節點
var collapseNodes = function (allTwoNodes, twoNode) {
for (var i = 0; i < allTwoNodes.length; i++) {
var item = allTwoNodes[i];
if ((twoNode != null) && (twoNode.id == item.id)) {
continue;
}
treeObj.expandNode(item, false, true, false);
}
}
var zNodes = [
// 第一層
{ id: 1, pId: 0, name: "父節點1 - 展開", open: true },
// 第二層
{ id: 11, pId: 1, name: "父節點11 - 折疊", icon: "zTree_v3/css/zTreeStyle/img/diy/2.png", open: true },
// 第三層
{ id: 111, pId: 11, name: "葉子節點111", click: false, open: true },
{ id: 112, pId: 11, name: "葉子節點112", open: true },
// 第四層
{ id: 1121, pId: 112, name: "三級1" },
{ id: 1122, pId: 112, name: "三級2" },
{ id: 1123, pId: 112, name: "三級3" },
// 第二層
{ id: 12, pId: 1, name: "父節點12", open: true },
// 第三層
{ id: 121, pId: 12, name: "葉子節點121" },
{ id: 122, pId: 12, name: "葉子節點122", open: true },
// 第四層
{ id: 1221, pId: 122, name: "三級1" },
{ id: 1222, pId: 122, name: "三級2" },
{ id: 1223, pId: 122, name: "三級3" },
];
var setting = {
type: "expandAll",//全部展開
view: {
showLine: false,//不顯示連接線
},
data: {
simpleData: {
enable: true
}
},
callback: { //回調函數
beforeClick: function (treeId, treeNode, clickFlag) {
},
onClick: function (vent, treeId, treeNode, clickFlag) {
//console.log(treeNode);
//console.log(treeNode.getParentNode());
//console.log(treeNode.getIndex());
//console.log(treeNode.getPath());
var nodes = treeNode.getPath();
var twoNode = getNodeByLevel(nodes, 1);
var oneNode = getNodeByLevel(nodes, 0);
var allTwoNodes = oneNode.children;
collapseNodes(allTwoNodes, twoNode);
},
onCollapse: function (event, treeId, treeNode) {
//alert('onCollapse / 折疊');//折疊
},
onExpand: function (event, treeId, treeNode) {
//alert('onExpand / 展開');//展開
}
}
};
//樹初始化
var treeObj = null;
$(document).ready(function () {
treeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
});
</script>
</head>
<body>
<div class="content_wrap">
<div class="zTreeDemoBackground left">
<!-- ztree的容器 -->
<ul id="treeDemo" class="ztree"></ul>
</div>
</div>
</body>
</html>
