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代码如下:

  1. <link rel="stylesheet" href="css/zTreeStyle.css" />

  2. <script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script>

  3. <script type="text/javascript" src="js/jquery.ztree.excheck-3.5.js"></script>

  4. <script type="text/javascript" src="js/jquery.ztree.exedit-3.5.js"></script>

  5. <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>

  6. <SCRIPT type="text/javascript">

  7. var dragId;var zTree_Menu;

  8. var setting = {

  9. view: {

  10. addHoverDom: addHoverDom,

  11. removeHoverDom: removeHoverDom,

  12. selectedMulti: false,

  13. showLine: false,

  14. selectedMulti: false,

  15. showIcon: false

  16. },

  17. edit: {

  18. enable: true,

  19. showRemoveBtn: setRemoveBtn,

  20. removeTitle:"删除分类",

  21. renameTitle:"编辑分类",

  22. drag: {

  23. prev: true,

  24. next: true,

  25. inner: false

  26. },

  27. editNameSelectAll: true

  28. },

  29. data: {

  30. simpleData: {

  31. enable: true

  32. }

  33. },

  34. callback: {

  35. beforeDrag: beforeDrag,

  36. beforeClick: beforeClick,

  37. beforeEditName: beforeEditName,

  38. beforeRemove: beforeRemove,

  39. beforeRename: beforeRename,

  40. onRemove: onRemove,

  41. onRename: onRename,

  42. beforeDrop: beforeDrop

  43. }

  44. };

  45. //采用简单数据模式 (Array)

  46. var zNodes =[

  47. { id:1, pId:0, name:"拖拽 1"},

  48. { id:11, pId:1, name:"拖拽 1-1"},

  49. { id:111, pId:11, name:"拖拽 1-1-1"},

  50. { id:12, pId:1, name:"拖拽 1-2"},

  51. { id:121, pId:12, name:"拖拽 1-2-1"},

  52. { id:122, pId:12, name:"拖拽 1-2-2"},

  53. { id:1221, pId:121, name:"拖拽 1-2-2-1"},

  54. { id:123, pId:12, name:"拖拽 1-2-3"},

  55. { id:1231, pId:123, name:"拖拽 1-2-3-1"},

  56. { id:1232, pId:123, name:"拖拽 1-2-3-2"},

  57. { id:1233, pId:123, name:"拖拽 1-2-3-3"},

  58. { id:2, pId:0, name:"拖拽 2"},

  59. { id:21, pId:2, name:"拖拽 2-1"},

  60. { id:22, pId:2, name:"拖拽 2-2"},

  61. { id:23, pId:2, name:"拖拽 2-3"},

  62. { id:3, pId:0, name:"拖拽 3"},

  63. { id:31, pId:3, name:"拖拽 3-1"},

  64. { id:32, pId:3, name:"拖拽 3-2"},

  65. { id:33, pId:3, name:"拖拽 3-3"}

  66. ];

  67. function beforeDrag(treeId, treeNodes) {//用于捕获节点被拖拽之前的事件回调函数

  68. return false;

  69. }

  70. function beforeEditName(treeId, treeNode) {//用于捕获节点编辑按钮的 click 事件,并且根据返回值确定是否允许进入名称编辑状态

  71. var zTree = $.fn.zTree.getZTreeObj("treeDemo");

  72. zTree.selectNode(treeNode);

  73. return true;

  74. }

  75. function beforeRemove(treeId, treeNode) {//用于捕获节点被删除之前的事件回调函数,并且根据返回值确定是否允许删除操作

  76. var zTree = $.fn.zTree.getZTreeObj("treeDemo");

  77. zTree.selectNode(treeNode);

  78. return confirm("确认删除 分类 -- " + treeNode.name + " 吗?");

  79. }

  80. function onRemove(e, treeId, treeNode) {//用于捕获删除节点之后的事件回调函数

  81. }

  82. function beforeRename(treeId, treeNode, newName) {//更新节点名称数据之前的事件回调函数,并且根据返回值确定是否允许更改名称的操作

  83. if (newName.length == 0) {

  84. alert("分类名称不能为空.");

  85. var zTree = $.fn.zTree.getZTreeObj("treeDemo");

  86. setTimeout(function(){zTree.editName(treeNode)}, 10);

  87. return false;

  88. }

  89. return true;

  90. }

  91. function onRename(e, treeId, treeNode) {//用于捕获节点编辑名称结束之后的事件回调函数

  92. }

  93. var newCount = 1;

  94. function addHoverDom(treeId, treeNode) {//用于当鼠标移动到节点上时,显示用户自定义控件

  95. var sObj = $("#" + treeNode.tId + "_span");

  96. if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;

  97. var addStr = "<span class='button add' id='addBtn_" + treeNode.tId

  98. + "' title='添加分类' onfocus='this.blur();'></span>";

  99. sObj.after(addStr);

  100. var btn = $("#addBtn_"+treeNode.tId);

  101. if (btn) btn.bind("click", function(){

  102. var zTree = $.fn.zTree.getZTreeObj("treeDemo");

  103. zTree.addNodes(treeNode, {id:(100 + newCount), pId:treeNode.id, name:"new node" + (newCount++)});

  104. return false;

  105. });

  106. }

  107. function setRemoveBtn(treeId, treeNode) {//父分类去掉删除功能

  108. return !treeNode.isParent;

  109. <span style="white-space:pre"> </span>}

  110. function removeHoverDom(treeId, treeNode) {

  111. $("#addBtn_"+treeNode.tId).unbind().remove();

  112. };

  113. function beforeDrag(treeId, treeNodes) {//拖拽时执行

  114. for (var i=0,l=treeNodes.length; i<l; i++) {

  115. dragId = treeNodes[i].pId;

  116. if (treeNodes[i].drag === false) {

  117. return false;

  118. }

  119. }

  120. return true;

  121. }

  122. function beforeDrop(treeId, treeNodes, targetNode, moveType) {//拖拽释放后执行

  123. if(targetNode.pId == dragId){

  124. return true;

  125. }else{

  126. return false;

  127. }

  128. }

  129. function selectAll() {

  130. var zTree = $.fn.zTree.getZTreeObj("treeDemo");

  131. zTree.setting.edit.editNameSelectAll = $("#selectAll").attr("checked");

  132. };

  133. $(document).ready(function(){

  134. $.fn.zTree.init($("#treeDemo"), setting, zNodes);//初始化ztree

  135. zTree_Menu = $.fn.zTree.getZTreeObj("treeDemo");

  136. $("#selectAll").bind("click", selectAll);

  137. });

  138. </SCRIPT>

  139. </head>

  140. <body>

  141. <div class="widget-box">

  142. <div class="widget-title"> <span class="icon"> <i class="icon-th"></i> </span>

  143. <h5>分类管理</h5>

  144. </div>

  145. <div class="widget-content tab-content" >

  146. <!--分类管理开始-->

  147. <div class="content_wrap" >

  148. <div class="zTreeDemoBackground ">

  149. <ul id="treeDemo" class="ztree"></ul>

  150. </div>

  151. </div>

  152. <!--分类管理结束-->

  153. </div>

  154. </div>

  155. </body>

  156. </html>

以上代码可以直接运行,不过需要下载相关js、css和图片,可以直接到ztree官网下载。

--------------------- 本文来自 黄爱岗 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/huangaigang6688/article/details/27237119?utm_source=copy

整合ztree的一些功能和demo演示相关推荐

  1. 14、阿里云短信Demo演示、Http的Get请求和Post请求演示、httpClient工具类演示、发送短信模块搭建、搭建用户中心模块、完成user注册基本功能、验证码存入redis、短信验证码注册

    阿里云短信Demo演示 一.前端部分 无前端. 二.后端部分 1.创建发送短信测试模块SmsSendDemo,不用使用骨架. 2.在pom文件中引入依赖坐标 <dependency>< ...

  2. Autoware入门学习(三)——Autoware软件功能使用介绍(1/3)及demo演示

    文章目录 1 Autoware 的官方 demo 演示 1.1 数据下载(点击链接or指令均可) 1.2 Demo 运行 2 Autoware 软件功能使用介绍(1/3) 2.1 Quick Star ...

  3. 零基础AJAX入门(含Demo演示源文件)

    零基础AJAX入门(含Demo演示源文件) 作者:一点一滴的Beer  个人主页:http://www.cnblogs.com/beer 摘要:因为笔者的大四毕业设计是做WebGIS系统,用过Web版 ...

  4. C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)

    C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示) 作者:一点一滴的Beer http://beer.cnblogs.com/ 在程序设计中,涉及数据存储和数据交换的时候 ...

  5. ThinkPHP框架整合phpqrcode生成二维码DEMO

    ThinkPHP框架发展到今天功能已经变得是非常强大了,但是ThinkPHP框架中没有二维码相关的库,因此我们可以通过整合phpqrcode来完成生成二维码的功能.想使用phpqrcode首先就要把p ...

  6. 实时计算pv/uv Demo演示

    简介:本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景. 作者 | 邓小勇(静行),阿里巴巴高级技术专家 本文由阿里巴巴高级技 ...

  7. mui 实现a锚点定位 (demo演示)【建议:仅作为参考】

    mui 实现<a>锚点定位(演示) - [建议:仅作为参考] 更改了js部分的源码class类名,可对比官方代码,匹配学习. 重要说明: 本案例,改编自"官方demo演示地址 · ...

  8. CnBlogs博文demo演示技巧比较:jsfiddle完胜

    一.简介 如果你是一名前端博主,你希望通过代码+演示来透彻的讲解一些技巧,并且无缝嵌入你的博客,那么jsfiddle是一个很好的选择. 本文将比较博客园前端dev们各种演示方式,大家可以挑选自己喜欢的 ...

  9. 【MAX7800实现KWS20 demo演示】

    [MAX7800实现KWS20 demo演示] 1. 概述 2. 关键字定位演示 2.1 构建固件: 2.2 选择板卡 2.3 MAX78000 EVKIT 2.3.1 MAX78000 EVKIT下 ...

  10. jvm-sandbox:基础了解及demo演示

    文章目录 一.基础准备-被测应用 二.代码编写-自定义Module 三.jvm-sandbox安装及基础命令 四.jvm-sandbox demo演示 4.1.改变方法返回 4.2.异常注入 五.资源 ...

最新文章

  1. 亚马逊AWS:用AI和机器学习让所有人受益
  2. python heapq模块使用
  3. [转]C++ 11 多线程--线程管理
  4. 1035 插入与归并 (25 分)(c++)
  5. LVS(3)——针对于真实主机的增删改操作
  6. Centos Flex 2.6.4
  7. Java程序停止 mq通道未关闭_java – 如何在MQ上停止丢失消息
  8. 3. Web Dynpro for ABAP: Web Dynpro Window Web Dynpro Program
  9. 4- Mybatis 的参数深入
  10. MyBatis学习总结(22)——Mybatis自增长ID获取
  11. 程序人生--一个程序员对学弟学妹建议
  12. 九大背包问题专题--分组背包问题
  13. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_15-webpack研究-webpack-dev-server-程序调试...
  14. 如何正确卸载天锐绿盾客户端
  15. h5.v2.php,最新H5影视双端PHP源码 可封装APP
  16. oracle 终止imp,终止imp/exp和expdp/impdp进程运行的方法
  17. html漂浮图片代码关闭,带关闭功能的漂浮图片代码
  18. matlab编译后方交会,摄影测量——后方交会(matlab
  19. ISCC部分pwn题解
  20. 好用的综合bim插件:Revit属性对话框中“视图范围”命令的使用

热门文章

  1. 2022 电工杯 B 物资配送 全部图解
  2. 模拟手机通讯录管理系统
  3. 25_多易教育之《yiee数据运营系统》OLAP平台-画像分析篇
  4. 1. Windows网络编程(C++ Socket编程)
  5. 我读《数据库系统基础教程》
  6. 岂曰无衣 与子同袍——解析月狂病amp;壳之少女的世界
  7. 产品配件类目税目分类_商品及税收分类编码选择技巧
  8. 三种射频通信接收机原理框图及优缺点
  9. UG NX 12 删除草图
  10. WebSql用法(自我记录)