index3.html 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <!DOCTYPE html>
  2. <HTML>
  3. <HEAD>
  4. <TITLE> ZTREE DEMO - beforeEditName / beforeRemove / onRemove / beforeRename / onRename</TITLE>
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  6. <link rel="stylesheet" href="./css/zTreeStyle.css" type="text/css">
  7. <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
  8. <script type="text/javascript" src="./js/jquery.ztree.core.js"></script>
  9. <script type="text/javascript" src="./js/jquery.ztree.excheck.js"></script>
  10. <script type="text/javascript" src="./js/jquery.ztree.exedit.js"></script>
  11. <SCRIPT type="text/javascript">
  12. var setting = {
  13. async:{
  14. enable:true,
  15. url:"test"
  16. },
  17. view: {
  18. addHoverDom: addHoverDom,
  19. removeHoverDom: removeHoverDom,
  20. selectedMulti: false
  21. },
  22. edit: {
  23. enable: true,
  24. editNameSelectAll: true,
  25. showRemoveBtn: showRemoveBtn,
  26. showRenameBtn: showRenameBtn
  27. },
  28. data: {
  29. simpleData: {
  30. enable: true
  31. }
  32. },
  33. callback: {
  34. beforeDrag: beforeDrag,
  35. beforeEditName: beforeEditName,
  36. beforeRemove: beforeRemove,
  37. beforeRename: beforeRename,
  38. onRemove: onRemove,
  39. onRename: onRename
  40. }
  41. };
  42. // var zNodes = [
  43. // { id: 1, pId: 0, name: "父节点 1", open: true },
  44. // { id: 11, pId: 1, name: "叶子节点 1-1" },
  45. // { id: 12, pId: 1, name: "叶子节点 1-2" },
  46. // { id: 13, pId: 1, name: "叶子节点 1-3" },
  47. // { id: 2, pId: 0, name: "父节点 2", open: true },
  48. // { id: 21, pId: 2, name: "叶子节点 2-1" },
  49. // { id: 22, pId: 2, name: "叶子节点 2-2" },
  50. // { id: 23, pId: 2, name: "叶子节点 2-3" },
  51. // { id: 3, pId: 0, name: "父节点 3", open: true },
  52. // { id: 31, pId: 3, name: "叶子节点 3-1" },
  53. // { id: 32, pId: 3, name: "叶子节点 3-2" },
  54. // { id: 33, pId: 3, name: "叶子节点 3-3" }
  55. // ];
  56. var log, className = "dark";
  57. function beforeDrag(treeId, treeNodes) {
  58. return false;
  59. }
  60. function beforeEditName(treeId, treeNode) {
  61. className = (className === "dark" ? "" : "dark");
  62. showLog("[ " + getTime() + " beforeEditName ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
  63. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  64. zTree.selectNode(treeNode);
  65. setTimeout(function () {
  66. if (confirm("进入节点 -- " + treeNode.name + " 的编辑状态吗?")) {
  67. setTimeout(function () {
  68. zTree.editName(treeNode);
  69. }, 0);
  70. }
  71. }, 0);
  72. return false;
  73. }
  74. function beforeRemove(treeId, treeNode) {
  75. className = (className === "dark" ? "" : "dark");
  76. showLog("[ " + getTime() + " beforeRemove ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
  77. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  78. zTree.selectNode(treeNode);
  79. return confirm("确认删除 节点 -- " + treeNode.name + " 吗?");
  80. }
  81. function onRemove(e, treeId, treeNode) {
  82. showLog("[ " + getTime() + " onRemove ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name);
  83. }
  84. function beforeRename(treeId, treeNode, newName, isCancel) {
  85. className = (className === "dark" ? "" : "dark");
  86. showLog((isCancel ? "<span style='color:red'>" : "") + "[ " + getTime() + " beforeRename ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name + (isCancel ? "</span>" : ""));
  87. if (newName.length == 0) {
  88. setTimeout(function () {
  89. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  90. zTree.cancelEditName();
  91. alert("节点名称不能为空.");
  92. }, 0);
  93. return false;
  94. }
  95. return true;
  96. }
  97. function onRename(e, treeId, treeNode, isCancel) {
  98. showLog((isCancel ? "<span style='color:red'>" : "") + "[ " + getTime() + " onRename ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name + (isCancel ? "</span>" : ""));
  99. }
  100. function showRemoveBtn(treeId, treeNode) {
  101. return !treeNode.isFirstNode;
  102. }
  103. function showRenameBtn(treeId, treeNode) {
  104. return !treeNode.isLastNode;
  105. }
  106. function showLog(str) {
  107. if (!log) log = $("#log");
  108. log.append("<li class='" + className + "'>" + str + "</li>");
  109. if (log.children("li").length > 8) {
  110. log.get(0).removeChild(log.children("li")[0]);
  111. }
  112. }
  113. function getTime() {
  114. var now = new Date(),
  115. h = now.getHours(),
  116. m = now.getMinutes(),
  117. s = now.getSeconds(),
  118. ms = now.getMilliseconds();
  119. return (h + ":" + m + ":" + s + " " + ms);
  120. }
  121. var newCount = 1;
  122. function addHoverDom(treeId, treeNode) {
  123. var sObj = $("#" + treeNode.tId + "_span");
  124. if (treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0) return;
  125. var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
  126. + "' title='add node' onfocus='this.blur();'></span>";
  127. sObj.after(addStr);
  128. var btn = $("#addBtn_" + treeNode.tId);
  129. if (btn) btn.bind("click", function () {
  130. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  131. zTree.addNodes(treeNode, { id: (100 + newCount), pId: treeNode.id, name: "new node" + (newCount++) });
  132. return false;
  133. });
  134. };
  135. function removeHoverDom(treeId, treeNode) {
  136. $("#addBtn_" + treeNode.tId).unbind().remove();
  137. };
  138. function selectAll() {
  139. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  140. zTree.setting.edit.editNameSelectAll = $("#selectAll").attr("checked");
  141. }
  142. $(document).ready(function () {
  143. $.fn.zTree.init($("#treeDemo"), setting);
  144. $("#selectAll").bind("click", selectAll);
  145. });
  146. </SCRIPT>
  147. <style type="text/css">
  148. .ztree li span.button.add {
  149. margin-left: 2px;
  150. margin-right: -1px;
  151. background-position: -144px 0;
  152. vertical-align: top;
  153. *vertical-align: middle
  154. }
  155. </style>
  156. </HEAD>
  157. <BODY>
  158. <div class="content_wrap">
  159. <div class="zTreeDemoBackground left">
  160. <ul id="treeDemo" class="ztree"></ul>
  161. </div>
  162. </div>
  163. </BODY>
  164. </HTML>