zTree的某些特殊功能(拖拽和多选)
来源:互联网 发布:淘宝开学季活动策划 编辑:程序博客网 时间:2024/06/16 05:16
1. zTree拖拽功能存储到数据库
callback : { beforeDrag : beforeDrag, beforeDrop : beforeDrop, }
//拖拽前,检查是否允许拖拽,是否为根节点function beforeDrag(treeId,treeNode){ for(var i=0;i<treeNode.length;i++){ if(treeNode[i].drag == false || !treeNode[i].getParentNode()) return false; } return true;}function beforeDrop(treeId, treeNode, targetNode) { //处理拖拽事件 for(var i = 0;i<treeNode.length;i++){ var curNode = treeNode[i]; var pNode = curNode.getParentNode(); //只允许同级拖拽 if(pNode && pNode !== targetNode.getParentNode()){ return false; } } handleDrag(treeNode,targetNode);}
List<***> dataList = ...;//获取ztree节点list String firstCurNode = *** ; //第一个节点 String lastCurNode = ***; //最后一个节点(支持多个节点同时拖拽) Integer firstCurNodeIndex = null; Integer lastCurNodeIndex = null; Integer tarIndex = null; for(int i = 0;i<dataList.size();i++){ if(DataList.get(i).getNodeName().equals(firstCurNode)) firstCurNodeIndex = i; if(DataList.get(i).getNodeName().equals(lastCurNode)) lastCurNodeIndex = i; if(DataList.get(i).getNodeName().equals(targetNode)) tarIndex = i; } //向下移动 if(lastCurNodeIndex<tarIndex){ Integer offset = tarIndex-lastCurNodeIndex;//移动距离 for(int i=lastCurNodeIndex+1;i<=tarIndex;i++){ Integer nodeOrder = dataList.get(i).getNodeOrder(); dataList.get(i).setNodeOrder(nodeOrder-currentNodes.length); } for(int j = firstCurNodeIndex;j<=lastCurNodeIndex;j++){ Integer curNodeOrder = dataList.get(j).getNodeOrder(); dataList.get(j).setNodeOrder(curNodeOrder+offset); } //向上移动 }else{ Integer offset = firstCurNodeIndex - tarIndex;//移动距离 for(int i=firstCurNodeIndex-1;i>=tarIndex;i--){ Integer nodeOrder = dataList.get(i).getNodeOrder(); dataList.get(i).setNodeOrder(nodeOrder+currentNodes.length); } for(int j = firstCurNodeIndex;j<=lastCurNodeIndex;j++){ Integer curNodeOrder = dataList.get(j).getNodeOrder(); dataList.get(j).setNodeOrder(curNodeOrder-offset); } } //保存到数据库 saveToDb();2. zTree shift键区域多选/勾选
callback : { onCheck : onCheck, //回调 } //处理shift键多节点勾选function onCheck(event, treeId, treeNode) { var preClickedNode = window.preClickedNode; window.preClickedNode=treeNode; event = window.event||event;//兼容IE if((!event.shiftKey && !event.srcEvent.shiftKey)||!preClickedNode){//event.srcEvent.shiftKey解决firefox兼容性问题 console.log("event shiftKey error"); return;// shift键 } if(preClickedNode.getParentNode()!=treeNode.getParentNode()){ //是否同级 preClickedNode=null; return; } var obj = jQuery.fn.zTree.getZTreeObj(treeId); // obj.selectNode(preClickedNode,true); //选择 var firstNode =obj.getNodeIndex(preClickedNode); var lastNode =obj.getNodeIndex(treeNode); var count = lastNode - firstNode; var nodeNew = preClickedNode; if (count > 0) { for (var i = 1; i < count; i++){ nodeNew = nodeNew.getNextNode(); if(!nodeNew)break;//用于排除隐患 // obj.selectNode(nodeNew, true); //选择 obj.checkNode(nodeNew, true, true);//勾选 } }else { for (var j = 1; j < (-count); j++) { nodeNew = nodeNew.getPreNode(); if(!nodeNew)break;//用于排除隐患 // obj.selectNode(nodeNew, true); //选择 obj.checkNode(nodeNew, true, true);//勾选 } } // window.preClickedNode=null; }}
0 0
- zTree的某些特殊功能(拖拽和多选)
- ztree使用系列二(整合ztree的一些功能和demo演示)
- ztree实现拖拽功能
- zTree shift多选功能
- zTree ctrl 多选功能
- ztree自定义按钮的显示和功能
- [js][zTree]zTree树组件shift多选功能的实现
- JQuery bootstrap datepicker 单独设置某些日期的特殊背景颜色和某些月份特殊背景
- SSH框架数据库连接信息和保存进数据库的某些特殊字段加密(jasypt)
- ztree实例(反选功能)
- css的某些特殊属性
- 功能树Ztree的使用
- zTree通过拖拽节点实现排序功能
- ztree 右键事件演示增删改及拖拽功能
- Asp过滤某些特殊字符的函数
- URL对某些特殊字符串的转义
- iOS 某些特殊名词的意思
- 一些特殊功能的SQL语句(特殊SQL)
- Python 的VideoWriter
- ASP.NET cache缓存的用法
- 不使用ant-contrib如何在ant脚本中处理字符串?
- [BZOJ1002]轮状病毒 做题笔记
- ArcGIS 使用方法备注
- zTree的某些特殊功能(拖拽和多选)
- 思维方式
- sildingdraw的使用和需要注意的地方
- Redis——如何阅读 Redis 源码?
- Android bat批处理自动执行adb shell命令
- 算法练习-NOJ-1043-跳马
- Day2
- 一步步创建自己的 iOS 框架
- 自定义控件之——自动显示隐藏头布局