Jquery 可拖拽的Ztree(移动,复制)两种选择

本是古典 何须时尚 2021-09-28 15:36 353阅读 0赞

首先要引入ztree依赖的js

  1. <link rel="stylesheet" type="text/css" href="<c:url value="/js/common/zTree-v3.5.14/css/zTreeStyle/zTreeStyle.css"/>"/>
  2. <script src="<c:url value="/js/common/zTree-v3.5.14/js/jquery.ztree.all-3.5.min.js"/>"
  3. <link rel="stylesheet" type="text/css" href="<c:url value="/js/common/bootstrap-2.3.2/css/bootstrap.min.css"/>"/>
  4. <script src="<c:url value="/js/common/bootstrap-2.3.2/js/bootstrap.min.js"/>" type="text/javascript"></script>
  5. <script src="<c:url value="/js/common/jquery/jquery-1.8.2.min.js"/>" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="<c:url value="/js/common/zTree-v3.5.14/css/zTreeStyle/zTreeStyle.css"/>"/>
  6. <script src="<c:url value="/js/common/zTree-v3.5.14/js/jquery.ztree.all-3.5.min.js"/>"
  7. <link rel="stylesheet" type="text/css" href="<c:url value="/js/common/bootstrap-2.3.2/css/bootstrap.min.css"/>"/>
  8. <script src="<c:url value="/js/common/bootstrap-2.3.2/js/bootstrap.min.js"/>" type="text/javascript"></script>
  9. <script src="<c:url value="/js/common/jquery/jquery-1.8.2.min.js"/>" type="text/javascript"></script>

只贴关键代码吧,自己把有用的属性全部打印出来了,也加了不少注释。

  1. $.fn.zTree.init($("#ztree"), {
  2. data: {
  3. simpleData: {
  4. enable: true
  5. }
  6. },
  7. view:{
  8. selectedMulti :false
  9. },
  10. edit: { //此属性添加后,树才可以被拖拽
  11. enable: true,
  12. showRemoveBtn: false,
  13. showRenameBtn: false,
  14. drag: {
  15. isCopy: true,
  16. isMove: true,
  17. prev: true,
  18. next: true,
  19. inner: true
  20. }
  21. },
  22. callback: {
  23. onClick: function(event, treeId, treeNode, clickFlag) {
  24. switch (treeNode.gradeType) {
  25. case "db":
  26. clickCatgryNode(treeNode.id);
  27. break;
  28. case "c":
  29. clickCatgryNode(treeNode.id);
  30. break;
  31. case "t":
  32. clickTabNode(treeNode.id,false);
  33. break;
  34. default:
  35. break;
  36. }
  37. },
  38. beforeDrag: function(treeId, treeNodes){
  39. console.log("开启拖拽");
  40. return true;
  41. },
  42. beforeDrop: function(treeId, treeNodes, targetNode, moveType, isCopy){
  43. console.log("可以拖拽");
  44. //console.log(treeId);
  45. //console.log(treeNodes);
  46. console.log(treeNodes);
  47. //console.log(targetNode);
  48. console.log("【源节点】节点id:"+treeNodes[0].id+" 父节点id:"+treeNodes[0].pId+" 级层:"+treeNodes[0].level+" 名称:"+treeNodes[0].name);
  49. //如果拖拽的是目录
  50. if(treeNodes[0].isParent){
  51. $.each(treeNodes[0].children,function(i,treeNode){
  52. console.log("【源节点】子节点"+i+":"+treeNode.id+" 父节点id:"+treeNode.pId+" 级层:"+treeNode.level+" 名称:"+treeNode.name);
  53. });
  54. }
  55. console.log("【目标节点】 节点id:"+targetNode.id+" 父节点id:"+targetNode.pId+" 级层:"+targetNode.level+" 名称:"+targetNode.name);
  56. //console.log("treeId:"+treeId+"--treeNodes:"+treeNodes+"--targetNode:"+targetNode+"--moveType:"+moveType+"--isCopy:"+isCopy);
  57. //库名不允许拖拽
  58. if(treeNodes[0].level==0){
  59. alert("不允许拖拽库节点");
  60. return false;
  61. }
  62. //不允许拖拽到表节点下(如果树状图中有空目录,那还是需要在后台进行校验该节点是否是表节点)
  63. if(!targetNode.isParent){
  64. alert("不允许拖拽任何节点到表节点下");
  65. return false;
  66. }
  67. return true;
  68. },
  69. beforeDragOpen: function(){
  70. console.log("自动展开目录");
  71. return true;
  72. },
  73. onDrag: function(){
  74. console.log("拖拽中");
  75. return true;
  76. },
  77. onDrop: function(event, treeId, treeNodes, targetNode, moveType, isCopy){
  78. console.log("拖拽完毕");
  79. //console.log(treeId);
  80. //console.log(treeNodes);
  81. //console.log(targetNode);
  82. console.log("【源节点】节点id:"+treeNodes[0].id+" 父节点id:"+treeNodes[0].pId+" 级层:"+treeNodes[0].level+" 名称:"+treeNodes[0].name);
  83. //如果拖拽的是目录
  84. if(treeNodes[0].isParent){
  85. $.each(treeNodes[0].children,function(i,treeNode){
  86. console.log("【源节点】子节点"+i+":"+treeNode.id+" 父节点id:"+treeNode.pId+" 级层:"+treeNode.level+" 名称:"+treeNode.name);
  87. });
  88. }
  89. console.log("【目标节点】 节点id:"+targetNode.id+" 父节点id:"+targetNode.pId+" 级层:"+targetNode.level+" 名称:"+targetNode.name);
  90. //console.log("event:"+event+"--treeId:"+treeId+"--treeNodes:"+treeNodes+"--targetNode:"+targetNode+"--moveType:"+moveType+"--isCopy:"+isCopy);
  91. return true;
  92. },
  93. onExpand: function(){
  94. console.log("获得被展开的节点信息");
  95. return true;
  96. }
  97. }
  98. }, zNodes);

发表评论

表情:
评论列表 (有 0 条评论,353人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jQuery实现面板

    一.实现功能 1.首先页面有一个面板或者对话框,有长和宽,可以设置为一个div。 2.当把鼠标over到div的某个位置时,鼠标的箭头图片变为一个拖拽的图片。 3.接