首先要引入ztree依赖的js

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

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

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

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

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

  1. jquery gridly (拖拽插件)

    Jquery Gridly 在项目中的使用 1.引入 js 和 css 两个文件,项目中位置如下 /erptheme/jqueryGridly/jquery.gridly.js/erptheme/jq ...

  2. jquery ui 拖拽

    Query UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量的 ...

  3. jQuery UI 拖拽功能

    原文地址:http://www.cnblogs.com/holbrook/archive/2012/03/13/2394111.html JQuery UI是JQuery官方支持的WebUI 代码库, ...

  4. JQuery UI 拖拽排序

    html代码: <div class="sortable"><div class="item"><img src="im ...

  5. jQuery 鼠标拖拽移动窗口

    拖拽移动需要注意的是:拖拽移动的窗口是如何定位的,如果"left"属性为"%" ,以"margin-left"来计算定位,如下实例,如果&q ...

  6. vue——js实现图片/文件的拖拽上传(复制粘贴就能用,还有优化空间)

    首先先创建元素容器 <template><div id="drop"><span v-show="isUpload" class= ...

  7. macbook触摸板拖拽不好用?复制选中难?教你两个设置,从此告别鼠标

    触控板设置 点击设置–触控板–更多手势,像下面这样设置 辅助功能设置 点击设置–辅助功能–左边下拉找到指针控制–触控板选项 启用三指拖拽 以后选中与拖拽只需要三指操作,再也不需要点按了,从此告别鼠标, ...

  8. jquery.ui.draggable中文文档jquery 自由拖拽类~study~

    为什么80%的码农都做不了架构师?>>>    JQuery UI Draggable插件用来使选中的元素可以通过鼠标拖动. Draggable的元素受影响css: ui-dragg ...

  9. 怎样用Jquery实现拖拽层,并实现网站自定义化模块功能?

    来源:http://www.oophp.cn/article/view/id/371 现在的网站...很多模块化的东西..都希望实现可视化的操作..主要原因是为了提高用户体验.增强用户的粘合度.当然这 ...

最新文章

  1. Redis主从复制配置
  2. CSS的特性之层叠性介绍
  3. spark入门_入门必读 | Spark 论文导读
  4. Android调用系统拍照裁剪和选图功能
  5. SQL 2000 中如何 纵表变横表
  6. 深度学习 - MPII Human Pose Database数据集下载
  7. BZOJ5336 TJOI2018 party 【状压DP】*
  8. Android 学习笔记【基础扫盲篇】
  9. qtscrcpy自定义按键_操作更简单的QtScrcpy
  10. ENVI 自带的6种遥感图像分类算法比较
  11. 读取xml数据装配到字典中之应用场景
  12. bigdecimal 保留两位小数_五年级数学知识点总结-02小数的除法
  13. java 8下载_java8下载-java8 64位官方版下载最新免费版-乡巴佬
  14. 【白板动画制作软件】万彩手影大师教程 | 分享在线视频
  15. 计算机键盘能直接接手机吗,手机变电脑!智能手机外接键盘和鼠标的3种方法...
  16. 稽首文殊,寒山之士;南无普…
  17. 三星Galaxy十周年,它给了你一款能买到的折叠手机
  18. Java 时间相关 获取某月的某一天
  19. 用python写字动画_Duang!用Python来实现唱歌、跳舞、写字、画画?无所不能的pyt
  20. 区块链学习—通证经济学的诺奖理论基础

热门文章

  1. aBey区块链联合创始人Ciprian Pungila博士在2019年马耳他区块链峰会上发表开幕演讲
  2. 日常用到的开源软件列表
  3. 广州达内软件有限公司-3G嵌入式开发助教
  4. 《智慧书》格言11¬20
  5. 操作系统linux应用试卷,《Linux操作系统应用》试卷5
  6. 快看,秋天的校园景色是多么美丽
  7. BBB(BeagleBone Black)硬件配置简介
  8. 利用pyecharts对JSON数据进行可视化操作
  9. HTML5期末考核大作业: 网站——美丽家乡 云南民族文化(8页面) ~ 学生DW网页设计作业源码...
  10. label runat=server