ztree官网上有详细的API和演示demo,这里就不详细介绍了,只对用到的一些功能进行说明一下。
1、用到的几个js文件
jquery-1.4.4.min.js(jQuery的核心js)
jquery.ztree.core-3.5.js(ztree的核心js)
jquery.ztree.excheck-3.5.js(ztree的复选框功能js)
jquery.ztree.exedit-3.5.js(ztree的编辑功能js)
2、用的css文件
zTreeStyle.css(只有这一个css文件,控制ztree样式,当然可以在这个文件里扩展自己需要的样式)
3、用到的图片
zTree v3.x 将主要图标都合并为一个图片,利用图片切割方式显示图标
4、数据定义
use the simple data format({"id":1, "pId":0, "name":"test1"})
5、页面demo代码如下:
<link rel="stylesheet" href="css/zTreeStyle.css" />
<script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script>
<script type="text/javascript" src="js/jquery.ztree.excheck-3.5.js"></script>
<script type="text/javascript" src="js/jquery.ztree.exedit-3.5.js"></script>
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<SCRIPT type="text/javascript">
var dragId;var zTree_Menu;
var setting = {
view: {
addHoverDom: addHoverDom,
removeHoverDom: removeHoverDom,
selectedMulti: false,
showLine: false,
selectedMulti: false,
showIcon: false
},
edit: {
enable: true,
showRemoveBtn: setRemoveBtn,
removeTitle:"删除分类",
renameTitle:"编辑分类",
drag: {
prev: true,
next: true,
inner: false
},
editNameSelectAll: true
},
data: {
simpleData: {
enable: true
}
},
callback: {
beforeDrag: beforeDrag,
beforeClick: beforeClick,
beforeEditName: beforeEditName,
beforeRemove: beforeRemove,
beforeRename: beforeRename,
onRemove: onRemove,
onRename: onRename,
beforeDrop: beforeDrop
}
};
//采用简单数据模式 (Array)
var zNodes =[
{ id:1, pId:0, name:"拖拽 1"},
{ id:11, pId:1, name:"拖拽 1-1"},
{ id:111, pId:11, name:"拖拽 1-1-1"},
{ id:12, pId:1, name:"拖拽 1-2"},
{ id:121, pId:12, name:"拖拽 1-2-1"},
{ id:122, pId:12, name:"拖拽 1-2-2"},
{ id:1221, pId:121, name:"拖拽 1-2-2-1"},
{ id:123, pId:12, name:"拖拽 1-2-3"},
{ id:1231, pId:123, name:"拖拽 1-2-3-1"},
{ id:1232, pId:123, name:"拖拽 1-2-3-2"},
{ id:1233, pId:123, name:"拖拽 1-2-3-3"},
{ id:2, pId:0, name:"拖拽 2"},
{ id:21, pId:2, name:"拖拽 2-1"},
{ id:22, pId:2, name:"拖拽 2-2"},
{ id:23, pId:2, name:"拖拽 2-3"},
{ id:3, pId:0, name:"拖拽 3"},
{ id:31, pId:3, name:"拖拽 3-1"},
{ id:32, pId:3, name:"拖拽 3-2"},
{ id:33, pId:3, name:"拖拽 3-3"}
];
function beforeDrag(treeId, treeNodes) {//用于捕获节点被拖拽之前的事件回调函数
return false;
}
function beforeEditName(treeId, treeNode) {//用于捕获节点编辑按钮的 click 事件,并且根据返回值确定是否允许进入名称编辑状态
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
zTree.selectNode(treeNode);
return true;
}
function beforeRemove(treeId, treeNode) {//用于捕获节点被删除之前的事件回调函数,并且根据返回值确定是否允许删除操作
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
zTree.selectNode(treeNode);
return confirm("确认删除 分类 -- " + treeNode.name + " 吗?");
}
function onRemove(e, treeId, treeNode) {//用于捕获删除节点之后的事件回调函数
}
function beforeRename(treeId, treeNode, newName) {//更新节点名称数据之前的事件回调函数,并且根据返回值确定是否允许更改名称的操作
if (newName.length == 0) {
alert("分类名称不能为空.");
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
setTimeout(function(){zTree.editName(treeNode)}, 10);
return false;
}
return true;
}
function onRename(e, treeId, treeNode) {//用于捕获节点编辑名称结束之后的事件回调函数
}
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='添加分类' onfocus='this.blur();'></span>";
sObj.after(addStr);
var btn = $("#addBtn_"+treeNode.tId);
if (btn) btn.bind("click", function(){
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
zTree.addNodes(treeNode, {id:(100 + newCount), pId:treeNode.id, name:"new node" + (newCount++)});
return false;
});
}
function setRemoveBtn(treeId, treeNode) {//父分类去掉删除功能
return !treeNode.isParent;
<span style="white-space:pre"> </span>}
function removeHoverDom(treeId, treeNode) {
$("#addBtn_"+treeNode.tId).unbind().remove();
};
function beforeDrag(treeId, treeNodes) {//拖拽时执行
for (var i=0,l=treeNodes.length; i<l; i++) {
dragId = treeNodes[i].pId;
if (treeNodes[i].drag === false) {
return false;
}
}
return true;
}
function beforeDrop(treeId, treeNodes, targetNode, moveType) {//拖拽释放后执行
if(targetNode.pId == dragId){
return true;
}else{
return false;
}
}
function selectAll() {
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
zTree.setting.edit.editNameSelectAll = $("#selectAll").attr("checked");
};
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, zNodes);//初始化ztree
zTree_Menu = $.fn.zTree.getZTreeObj("treeDemo");
$("#selectAll").bind("click", selectAll);
});
</SCRIPT>
</head>
<body>
<div class="widget-box">
<div class="widget-title"> <span class="icon"> <i class="icon-th"></i> </span>
<h5>分类管理</h5>
</div>
<div class="widget-content tab-content" >
<!--分类管理开始-->
<div class="content_wrap" >
<div class="zTreeDemoBackground ">
<ul id="treeDemo" class="ztree"></ul>
</div>
</div>
<!--分类管理结束-->
</div>
</div>
</body>
</html>
以上代码可以直接运行,不过需要下载相关js、css和图片,可以直接到ztree官网下载。
--------------------- 本文来自 黄爱岗 的CSDN 博客 ,全文地址请点击:/huangaigang6688/article/details/27237119?utm_source=copy