只展开第一级目录
效果如下:
代码:
//展开所有节点
ztree.expandAll(false);
//只展开第一级树
var treeObj = $.fn.zTree.getZTreeObj("menuTree");
var nodes = treeObj.getNodesByFilter(filter); // 查找节点集合
$(nodes).each(function () {
ztree.expandNode(this, true, false, true);
});
function filter(node) {
return (node.level == 0);
};
一个ztree的例子
包含了新增节点、改名、只显示第一级目录、自定义title显示
差点击某一个父目录展开下面所有子目录的功能 html:
<!DOCTYPE html>
<html>
<head>
<title>旅客列表</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="stylesheet" href="../public/css/bootstrap.min.css">
<link rel="stylesheet" href="../public/css/font-awesome.min.css">
<link rel="stylesheet" href="../public/plugins/jqgrid/ui.jqgrid-bootstrap.css">
<link rel="stylesheet" href="../public/plugins/ztree/css/metroStyle/metroStyle.css">
<link rel="stylesheet" href="../public/css/main.css">
<script src="../public/libs/jquery.min.js"></script>
<script src="../public/plugins/layer/layer.js"></script>
<script src="../public/libs/bootstrap.min.js"></script>
<script src="../public/libs/vue.min.js"></script>
<script src="../public/plugins/jqgrid/grid.locale-cn.js"></script>
<script src="../public/plugins/jqgrid/jquery.jqGrid.min.js"></script>
<script src="../public/plugins/ztree/jquery.ztree.all.min.js"></script>
<script src="../public/js/common.js"></script>
</head>
<body>
<div id="rrapp" class="panel panel-default">
<div class="panel-heading">标签</div>
<form class="form-horizontal">
<div class="form-group">
<div class="col-sm-12">
<ul id="menuTree" class="ztree"></ul>
</div>
</div>
</form>
</div>
<script src="../public/js/sys/tag.js"></script>
</body>
</html>
js:
$(function () {
//加载标签树
$.get("../tag/list", function (r) {
//r.list是所有的列表,格式为[{"id":"1","name":"name1","parent_id":"0"},{"id":"2","name":"name2","parent_id":"0"}]
ztree = $.fn.zTree.init($("#menuTree"), setting, r.list);
//展开所有节点
ztree.expandAll(false);
//只展开第一级树
var treeObj = $.fn.zTree.getZTreeObj("menuTree");
var nodes = treeObj.getNodesByFilter(filter); // 查找节点集合
$(nodes).each(function () {
ztree.expandNode(this, true, false, true);
});
});
});
var ztree;
var setting = {
edit: {
enable: true,
showRemoveBtn: false
},
view: {
selectedMulti: false,
addHoverDom: addHoverDom,
removeHoverDom: removeHoverDom,
showTitle: true
},
data: {
key:{
//自定义title显示需要用到
title: "title"
},
simpleData: {
enable: true,
idKey: "id",
pIdKey: "parent_id",
rootPId: 0
}
},
callback: {
onRename: zTreeOnRename,
onNodeCreated: zTreeOnNodeCreated
}
};
function zTreeOnRename(event, treeId, treeNode, isCancel) {
$.ajax({
url: "../tag/update",
data: {
"id": treeNode.id,
"name": treeNode.name,
"parent_id": treeNode.parent_id
},
success: function (result) {
}
});
}
var newCount = 1;
function addHoverDom(treeId, treeNode) {
var sObj = $("#" + treeNode.tId + "_span");
if (treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0) return;
var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
+ "' title='add node' onfocus='this.blur();'></span>";
sObj.after(addStr);
var btn = $("#addBtn_" + treeNode.tId);
if (btn) btn.bind("click", function () {
var tempname = "new node" + (newCount++);
$.ajax({
url: "../tag/add",
data: {
"name": tempname,
"parent_id": treeNode.id
},
success: function (result) {
if (0 == result.code) {
var zTree = $.fn.zTree.getZTreeObj("menuTree");
zTree.addNodes(treeNode, {id: result.id, pId: treeNode.id, name: "new node" + (newCount++)});
}
}
});
return false;
});
};
function removeHoverDom(treeId, treeNode) {
$("#addBtn_" + treeNode.tId).unbind().remove();
};
function filter(node) {
return (node.level == 0);
};
function zTreeOnNodeCreated(event, treeId, treeNode) {
var title = treeNode.name + ":id=" + treeNode.id + "&level=" + treeNode.level;
var zTree = $.fn.zTree.getZTreeObj(treeId);
treeNode.title = title;
zTree.updateNode(treeNode);
};