drag_fun.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <!DOCTYPE html>
  2. <HTML>
  3. <HEAD>
  4. <TITLE> ZTREE DEMO - copyNode / moveNode</TITLE>
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  6. <link rel="stylesheet" href="../../../css/demo.css" type="text/css">
  7. <link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
  8. <script type="text/javascript" src="../../../js/jquery.min.js"></script>
  9. <!-- <script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>-->
  10. <script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script>
  11. <script type="text/javascript" src="../../../js/jquery.ztree.excheck.js"></script>
  12. <script type="text/javascript" src="../../../js/jquery.ztree.exedit.js"></script>
  13. <SCRIPT type="text/javascript">
  14. <!--
  15. var setting = {
  16. view: {
  17. selectedMulti: false
  18. },
  19. edit: {
  20. enable: true,
  21. showRemoveBtn: false,
  22. showRenameBtn: false
  23. },
  24. data: {
  25. simpleData: {
  26. enable: true
  27. }
  28. },
  29. callback: {
  30. beforeDrag: beforeDrag,
  31. beforeClick: beforeClick
  32. }
  33. };
  34. var zNodes =[
  35. { id:1, pId:0, name:"父节点 1", open:true},
  36. { id:11, pId:1, name:"叶子节点 1-1"},
  37. { id:12, pId:1, name:"叶子节点 1-2"},
  38. { id:13, pId:1, name:"叶子节点 1-3"},
  39. { id:2, pId:0, name:"父节点 2", open:true},
  40. { id:21, pId:2, name:"叶子节点 2-1"},
  41. { id:22, pId:2, name:"叶子节点 2-2"},
  42. { id:23, pId:2, name:"叶子节点 2-3"},
  43. { id:3, pId:0, name:"父节点 3", open:true },
  44. { id:31, pId:3, name:"叶子节点 3-1"},
  45. { id:32, pId:3, name:"叶子节点 3-2"},
  46. { id:33, pId:3, name:"叶子节点 3-3"}
  47. ];
  48. function fontCss(treeNode) {
  49. var aObj = $("#" + treeNode.tId + "_a");
  50. aObj.removeClass("copy").removeClass("cut");
  51. if (treeNode === curSrcNode) {
  52. if (curType == "copy") {
  53. aObj.addClass(curType);
  54. } else {
  55. aObj.addClass(curType);
  56. }
  57. }
  58. }
  59. function beforeDrag(treeId, treeNodes) {
  60. return false;
  61. }
  62. function beforeClick(treeId, treeNode) {
  63. return !treeNode.isCur;
  64. }
  65. var curSrcNode, curType;
  66. function setCurSrcNode(treeNode) {
  67. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  68. if (curSrcNode) {
  69. delete curSrcNode.isCur;
  70. var tmpNode = curSrcNode;
  71. curSrcNode = null;
  72. fontCss(tmpNode);
  73. }
  74. curSrcNode = treeNode;
  75. if (!treeNode) return;
  76. curSrcNode.isCur = true;
  77. zTree.cancelSelectedNode();
  78. fontCss(curSrcNode);
  79. }
  80. function copy(e) {
  81. var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
  82. nodes = zTree.getSelectedNodes();
  83. if (nodes.length == 0) {
  84. alert("请先选择一个节点");
  85. return;
  86. }
  87. curType = "copy";
  88. setCurSrcNode(nodes[0]);
  89. }
  90. function cut(e) {
  91. var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
  92. nodes = zTree.getSelectedNodes();
  93. if (nodes.length == 0) {
  94. alert("请先选择一个节点");
  95. return;
  96. }
  97. curType = "cut";
  98. setCurSrcNode(nodes[0]);
  99. }
  100. function paste(e) {
  101. if (!curSrcNode) {
  102. alert("请先选择一个节点进行 复制 / 剪切");
  103. return;
  104. }
  105. var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
  106. nodes = zTree.getSelectedNodes(),
  107. targetNode = nodes.length>0? nodes[0]:null;
  108. if (curSrcNode === targetNode) {
  109. alert("不能移动,源节点 与 目标节点相同");
  110. return;
  111. } else if (curType === "cut" && ((!!targetNode && curSrcNode.parentTId === targetNode.tId) || (!targetNode && !curSrcNode.parentTId))) {
  112. alert("不能移动,源节点 已经存在于 目标节点中");
  113. return;
  114. } else if (curType === "copy") {
  115. targetNode = zTree.copyNode(targetNode, curSrcNode, "inner");
  116. } else if (curType === "cut") {
  117. targetNode = zTree.moveNode(targetNode, curSrcNode, "inner");
  118. if (!targetNode) {
  119. alert("剪切失败,源节点是目标节点的父节点");
  120. }
  121. targetNode = curSrcNode;
  122. }
  123. setCurSrcNode();
  124. delete targetNode.isCur;
  125. zTree.selectNode(targetNode);
  126. }
  127. $(document).ready(function(){
  128. $.fn.zTree.init($("#treeDemo"), setting, zNodes);
  129. $("#copy").bind("click", copy);
  130. $("#cut").bind("click", cut);
  131. $("#paste").bind("click", paste);
  132. });
  133. //-->
  134. </SCRIPT>
  135. <style type="text/css">
  136. .ztree li a.copy{padding-top:0; background-color:#316AC5; color:white; border:1px #316AC5 solid;}
  137. .ztree li a.cut{padding-top:0; background-color:silver; color:#111; border:1px #316AC5 dotted;}
  138. </style>
  139. </HEAD>
  140. <BODY>
  141. <h1>用 zTree 方法 移动 / 复制节点</h1>
  142. <h6>[ 文件路径: exedit/drag_fun.html ]</h6>
  143. <div class="content_wrap">
  144. <div class="zTreeDemoBackground left">
  145. <ul id="treeDemo" class="ztree"></ul>
  146. </div>
  147. <div class="right">
  148. <ul class="info">
  149. <li class="title"><h2>1、copyNode / moveNode 方法操作说明</h2>
  150. <ul class="list">
  151. <li>利用 copyNode / moveNode 方法也可以实现 复制 / 移动 节点的目的,这里简单演示使用方法</li>
  152. <li><p>对节点进行 复制 / 剪切,试试看:<br/>
  153. &nbsp;&nbsp;&nbsp;&nbsp;[ <a id="copy" href="#" title="复制" onclick="return false;">复制</a> ]
  154. &nbsp;&nbsp;&nbsp;&nbsp;[ <a id="cut" href="#" title="剪切" onclick="return false;">剪切</a> ]
  155. &nbsp;&nbsp;&nbsp;&nbsp;[ <a id="paste" href="#" title="粘贴" onclick="return false;">粘贴</a> ]</p>
  156. <li class="highlight_red">使用 zTreeObj.copyNode / moveNode 方法,详细请参见 API 文档中的相关内容</li>
  157. </ul>
  158. </li>
  159. <li class="title"><h2>2、setting 配置信息说明</h2>
  160. <ul class="list">
  161. <li>同 "拖拽 节点 基本控制"</li>
  162. </ul>
  163. </li>
  164. <li class="title"><h2>3、treeNode 节点数据说明</h2>
  165. <ul class="list">
  166. <li>同 "拖拽 节点 基本控制"</li>
  167. </ul>
  168. </li>
  169. </ul>
  170. </div>
  171. </div>
  172. </BODY>
  173. </HTML>