구현 아이디어: 1. ztree의 노드는 json 배열을 데이터 소스로 사용하므로 json 문자열을 직접 조작한 후 json 객체 배열로 변환합니다. 2. 그런 다음 새로 형성된 json 배열 객체로 ztree 객체를 다시 초기화합니다. 코드 복사 코드는 다음과 같습니다. <br> var zTreeObj1;<br> var zTreeObj2;<br> var leftDivStr = "[";<br> var rightDivStr = "[";<br> var setting = {<br> edit: {<br> enable: false,<br> showRemoveBtn: false,<br> showRenameBtn: false<br> },<br> data: {<br> simpleData: {<br> enable: true<br> }<br> },<br> callback: {<br> //onClick : menuOnClick<br> }<br> };<br> function menuOnClick(event, treeId, treeNode, clickFlag) {<br><br> }<br> //注册toSource函数,解决ie不支持Array的toSource()方法的问题<br> Array.prototype.toSource = function (){<br> var str = "[";<br> for(var i = 0 ;i<this.length;i++){<br> str+="{id:\""+this[i].id+<br> "\",pId:\""+this[i].pId<br> +"\",name:\""+this[i].name<br> +"\",isParent:\""+this[i].isParent<br> +"\",file:\""+this[i].file<br> +"\",icon:\""+this[i].icon<br> +"\",open:\""+this[i].open<br> +"\"},";<br> }<br> if(this.length != 0){<br> str = str.substring(0, str.length-1);<br> }<br> str +="]";<br> return str; <p> } ;<br> //注册unique函数,去掉array中重复的对象(id相同即为同一对象)<br> Array.prototype.unique = function (){<br> var r = new Array();<br> label:for(var i = 0, n = this.length; i < n; i++) {<br> for(var x = 0, y = r.length; x < y; x++) {<br> if(r[x].id == this[i].id) {<br> continue label;<br> }<br> }<br> r[r.length] = this[i];<br> }<br> return r;</p> <p> ; ; 11, pId:1, 이름:"리프 노드 1-1",open:true},<br> > 121 , pId:12, 이름:"리프 노드 12-1"},<br> > ~ > ~ 노드 2-3 "}, <br> {id: 3, pid: 0, name:" Father Node 3 ", Open: TRUE}, <br> {id: 31, pid: 3, name:" 리프 노드 3 3 -1 "}, {id: 32, pid: 3, 이름:" 리프 노드 3-2 "}, <br> {ID: 33, PID: 3, 이름:" 리프 노드 3-3 "} <br> ~ | DivStr = leftDivStr.substring( 0,leftDivStr.length-1);<br> leftDivStr ="]";<br> rightDivStr = "]";<br><br> //이동된 노드의 모든 상위 노드 찾기<br> function findParentNodes(treeNode , parentNodes){ <br> ParentNodes = "{id:" time.id ", pid:" time.pid <br> ", name:" "time.name" "", open: "time.open"}, "; <br> If (Treenode! = Null && Treenode.getparentnode ()! = Null) } 부모 노드 반환; <br>} <br> //노드 이동<br> function moveNodes(zTreeFrom,treeNode,zTreeTo, divStrFrom,divStrTo){<br> ////////////////////// //////////treeNode의 모든 상위 노드<br> var parentNodes ="[";<br> > parentNodes = parentNodes.substring(0,parentNodes.length-1);<br> <br><br> parentNodes ="]";<br> //alert(parentNodes);<br> var parentNodesArray = eval(parentNodes);<br> ///////////// ////////////////<br> var 노드 = "[";<br> 노드 = "{id:" treeNode.id ",pId:" treeNode.pId ", 이름:"" treeNode.name "",open:" treeNode.open "},";<br> 노드 = operChildrenNodes(treeNode,nodes);<br> 노드 = node.substring(0,nodes.length-1) ;<br> 노드 ="]";<br> var nodeArray = eval(nodes);<br> var divFromArray = eval(divStrFrom);<br> var divToArray = eval(divStrTo);<br> for(var i = 0;i<nodesArray.length;i ){//删除节点<br> for(var j = 0;j<divFromArray.length;j ){<br> if(divFromArray[j].id == nodeArray[ i].id){<br> divFromArray.splice(j,1);<br> }<br> }<br> }<br><br> divToArray = divToArray.concat(nodesArray);//增加节点<br> divToArray = divToArray.concat(parentNodesArray);<br><br> //////////////////////////////// ///////////////////////////////////////////////// ////중복<br> divFromArray = divFromArray.unique();<br> divToArray = divToArray.unique();<br> //////////////////// ///////////////////////////////////////////////// /////////////////////去중대<br><br> if(zTreeFrom.setting.treeId == "treeDemo"){<br> leftDivStr = divFromArray .toSource();<br> rightDivStr =divToArray.toSource();<br> $.fn.zTree.init($("#treeDemo"), 설정, divFromArray);<br> $.fn.zTr ee.init ($("#treeDemo2"), 설정,divToArray);<br><br> }else{<br> leftDivStr = divToArray.toSource();<br> =divFromArray.toSource();<br> $. fn.zTree.init($("#treeDemo2"), 설정, divFromArray);<br> $.fn.zTree.init($("#treeDemo"), 설정, divToArray);<br> }<br> }<br> <br> // 지정된 노드 아래의 모든 하위 노드를 찾습니다. <br> Function OpelChildrenNodes (Treenode, NodeS) {<br> if (time.children! = Undefine) {// 부모입니다. 노드, 일부 하위 노드<br> for(var j = 0;j<treenode.children.length> var childNode = treeNode.children[j];<br> 노드 =" {id:" id " ,pId:" childNode.pId ",name:"" childNode.name "",open:" childNode.open "},";<br> 노드 = operChildrenNodes(childNode, 노드); } else{//자식 없음 노드<br> }<br> 노드 반환;<br> }<br><br> zTreeObj1 = $.fn.zTree.init($("#tree. 데모"), 설정, zNodes);<br> zTreeObj2 = $ .fn.zTree.init($("#treeDemo2"), 설정);<br> $(function() { <br> $("#toRight").click(function() {<br> }); <br> ("#toLeft").click(function(){<br> ~ moveNodes(zTreeObj2,zTreeObj2.getSelectedNodes()[0],zTreeObj1,rightDivStr,leftDivStr); "#show").click (함수() {<br> for(var i = 0;i<leftDivStrArray.length; i ){<br> | Array.length;i ){<br> <br> 경보(leftDiv);<br> 경보(rightDiv);<br><br> }); <br> });<br> });<br><br> <br> html代码: 复主代码 代码如下: >> <<< /button> show