求指导! 前端如何解决,求指导,如果处理数据源怎么保持嵌套之前的依赖关系。
1条回答 默认 最新
- ℃_0501 2018-06-23 04:11关注
<script type="text/javascript" src="zTreejs/jquery.ztree.core.js"></script> <script type="text/javascript" src="zTreejs/jquery.ztree.excheck.js"></script> <script type="text/javascript" src="zTreejs/jquery.ztree.exedit.js"></script> <SCRIPT type="text/javascript"> var zNodes; var setting = { view: { addHoverDom: addHoverDom, removeHoverDom: removeHoverDom, selectedMulti: true }, check: { enable: true }, data: { simpleData: { enable: true } }, edit: { enable: true }, callback: { onExpand : zTreeBeforeClick,//点击节点加载子节点 beforeRemove: beforeRemove,//用于捕获节点被删除之前的事件回调函数,并且根据返回值确定是否允许删除操作 beforeRename: beforeRename,//用于捕获节点编辑名称结束(Input 失去焦点 或 按下 Enter 键)之后,更新节点名称数据之前的事件回调函数,并且根据返回值确定是否允许更改名称的操作 beforeDrop : beforeDrop, onDrop : onDrop } }; function loadPower(){ $.ajax({ type:"post", url:"${pageContext.request.contextPath}/itemcat/findTree", async:false, dataType:"json", success:function(data){ zNodes=data; } }) } $(document).ready(function(){ loadPower(); /* $.fn.zTree.init($("#treeDemo"), setting, zNodes); */ $.fn.zTree.init($("#treeDemo"), setting, zNodes); }); /* ztree一级一级加载数据 */ function zTreeBeforeClick(event, treeId, treeNode) { var id=treeNode.id; //判断该节点下是否有节点,没有就加载节点 var treeObj = $.fn.zTree.getZTreeObj(treeId); var node = treeObj.getNodeByTId(treeNode.tId); if(node.children == null || node.children == "undefined"){ $.ajax({ url : "${pageContext.request.contextPath}/itemcat/findTree", type:'get',//请求方式:get data: {id:id}, dataType : 'json',//数据传输格式:json error : function() { $.messager.alert("警告",'亲,请求失败!'); }, success : function(data) { if(data!=null && data!=""){ newNode = treeObj.addNodes(node, data); } } }); }; }; //添加 var newCount = 1; function addHoverDom(treeId, treeNode) { var sObj = $("#" + treeNode.tId + "_span"); if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return; var addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='add node' onfocus='this.blur();'></span>"; sObj.after(addStr); var btn = $("#addBtn_"+treeNode.tId); if (btn) btn.bind("click", function(){ $.ajax({ type : "POST", async : false, url : "${pageContext.request.contextPath}/itemcat/addRootTree", data : { name : "类目" + newCount, parentId: treeNode.id, sortOrder:treeNode.level+1 }, success:function(result){ if(""!=result ){ var zTree = $.fn.zTree.getZTreeObj("treeDemo"); zTree.addNodes(treeNode, {id:result.data.id, pid:treeNode.id, name:"类目" + (newCount)}); return false; }else{ alert("无法添加新类目,请联系管理员!"); } } }); return false; }); }; function removeHoverDom(treeId, treeNode) { $("#addBtn_"+treeNode.tId).unbind().remove(); }; var log, className = "dark"; //ok 删除 function beforeRemove(treeId, treeNode) { className = (className === "dark" ? "":"dark"); var zTree = $.fn.zTree.getZTreeObj("treeDemo"); zTree.selectNode(treeNode); var isDel=confirm("确认删除类目 -- " + treeNode.name + " 吗?"); var isDeled=false; if (isDel) { $.ajax({ type : "POST", async : false, url : "${pageContext.request.contextPath}/itemcat/deleteItemCat", data : { id : treeNode.id }, success:function(result){ if (result.status==200) { isDeled= true; } else { alert("数据删除失败,请联系管理员!"); isDeled= false; } } }); return isDeled; }else{ return false; } } //ok 重命名 function beforeRename(treeId, treeNode, newName, isCancel) { className = (className === "dark" ? "":"dark"); if (newName.length == 0) { alert("节点名称不能为空!"); var zTree = $.fn.zTree.getZTreeObj("treeDemo"); setTimeout(function(){zTree.editName(treeNode)}, 10); return false; }else{ var isDeled=false; $.ajax({ type : "POST", async : false, url : "${pageContext.request.contextPath}/itemcat/editTreeName", data : { id : treeNode.id, name : newName }, success:function(result){ if (result.status == 200) { isDeled= true; } else { alert("重命名失败!请联系管理员"); isDeled= false; } } }); return isDeled; } } /*设置一个根节点*/ /* beforeDrop方法:在添加到目标节点下之前,判断目标节点是否存在(这里限制了对于根节点的添加),若存在则判断目标节点下是否已存在相同的节点*/ function beforeDrop(treeId, treeNodes, targetNode, moveType, isCopy) { //如果有提交到后台的操作,则会先执行if…else…再执行post等提交操作 alert(treeNodes[0].id); alert(treeNodes[0].level); alert(targetNode.id); alert(targetNode.level); if(targetNode) { if(targetNode.id == 1){ alert("Error: This name already exists."); return false; } if(targetNode.children != undefined){ //console.log(targetNode.children[0].name) //var nodes = targetNode.children; var name = treeNodes[0].name; for (i = 0; i < targetNode.children.length; i++) { if(targetNode.children[i].name == name){ alert("Error: This name already exists."); return false; } } } return true; } return false; } //拖拽 function onDrop(event, treeId, treeNodes, targetNode, moveType, isCopy) { className = (className === "dark" ? "":"dark"); //拖拽成功时,修改被拖拽节点的pid if(treeNodes && targetNode){ alert(treeNodes[0].id); alert(targetNode.id); var isDeled=false; $.ajax({ type : "POST", async : false, url : "${pageContext.request.contextPath}/itemcat/editTree", data : { id : treeNodes[0].id, pid: targetNode.id , sortOrder: targetNode.level }, success:function(result){ if (result.status == 200) { isDeled= true; } else { alert("操作失败!"); isDeled= false; } } }); return isDeled; } } //--> /* 添加根节点*/ // 添加根目录。界面上添加一个button,点击时执行。(因为,树上直接进行添加操作,添加的是子部门) function addRoleTree(){ $.ajax({ type : "POST", async : false, url : "${pageContext.request.contextPath}/itemcat/addRootTree", data : { name : "类目一", parentId : 0 , sortOrder:1 }, success:function(result){ window.location.reload(); } }); } </SCRIPT>
解决 无用评论 打赏 举报
悬赏问题
- ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
- ¥15 错误 LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型
- ¥15 求学软件的前人们指明方向🥺