⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree.js

📁 ajax实现的datagrid
💻 JS
📖 第 1 页 / 共 4 页
字号:
if(this.children){for(var ii=this.children.length-1;ii>=0;ii--){this.children[ii].destroy(true);}}if(this.config.isRootNode){return;}var childIndex=null;var childrenArray=this.config.parentNode.children;for(var ii=0;ii<childrenArray.length;ii++){if(childrenArray[ii]==this){childIndex=ii;break;}}if(childIndex==null){}else{if(childIndex!=0&&childrenArray[childIndex-1].isCreated){childrenArray[childIndex-1].putLines();}if(childIndex!=childrenArray.length-1&&childrenArray[childIndex+1].isCreated){childrenArray[childIndex+1].putLines();}childrenArray=childrenArray.slice(0,childIndex).concat(childrenArray.slice(childIndex+1));this.config.parentNode.children=childrenArray;}for(var ii=0;ii<this.config.tree.allNodes.length;ii++){if(this.config.tree.allNodes[ii]==this){childIndex=ii;break;}}if(childIndex==null){}else{this.config.tree.allNodes=this.config.tree.allNodes.slice(0,childIndex).concat(this.config.tree.allNodes.slice(childIndex+1));}if(this.data.attributes&&this.data.attributes.id){this.config.tree.id2Obj[this.data.attributes.id]=null;}else{this.config.tree.id2Obj[this.id]=null;}if(this.config.tree.prevSelected==this){this.config.tree.prevSelected=null;}if(this.config.parentNode){this.config.parentNode.updateCheckbox();}};Zapatec.Tree.Node.prototype.addNode=function(newChild,insertPosition){if(newChild!=null&&newChild.nodeType&&newChild.nodeType==1&&newChild.nodeName.toLowerCase()=="li"){newChild=Zapatec.Tree.Utils.convertLi2Json(newChild,this.config.tree.config.prevCompatible);}if(newChild==null){Zapatec.Log({description:"No data given!"});return null;}var resultNode=newChild;this.data.children.splice(insertPosition,0,newChild);if(this.isCreated||!this.config.tree.quick){resultNode=new Zapatec.Tree.Node({tree:this.config.tree,parentNode:this,level:this.config.level+1,source:newChild,sourceType:"json",eventListeners:this.config.eventListeners});if(this.isChildrenCreated){var prevNode=null;var nextNode=null;var insertBeforeElement=null;if(insertPosition!=0){prevNode=this.children[insertPosition-1];}if(insertPosition!=this.children.length){nextNode=this.children[insertPosition];insertBeforeElement=nextNode.labelContainer;}var tmp=document.createElement("SPAN");Zapatec.Transport.setInnerHtml({html:resultNode.create(),container:tmp});var nodes=[];for(var ii=0;ii<tmp.childNodes.length;ii++){nodes.push(tmp.childNodes[ii]);}if(insertBeforeElement){for(var ii=0;ii<nodes.length;ii++){this.childrenContainer.insertBefore(nodes[ii],insertBeforeElement);}}else{for(var ii=0;ii<nodes.length;ii++){this.childrenContainer.appendChild(nodes[ii]);}}resultNode.afterCreate();if(prevNode){prevNode.putLines();}if(nextNode){nextNode.putLines();}}this.children.splice(insertPosition,0,resultNode);}this.updateCheckbox();if(this.config.parentNode){this.config.parentNode.updateCheckbox();}return resultNode;};Zapatec.Tree.Node.prototype.appendChild=function(newChild,atStart){if(atStart){return this.addNode(newChild,0);}else{return this.addNode(newChild,this.children.length);}};Zapatec.Tree.Node.prototype.insertBefore=function(newChild){for(var ii=this.config.parentNode.children.length-1;ii>=0;ii--){if(this==this.config.parentNode.children[ii]){return this.config.parentNode.addNode(newChild,ii);}}};Zapatec.Tree.Node.prototype.insertAfter=function(newChild){for(var ii=this.config.parentNode.children.length-1;ii>=0;ii--){if(this==this.config.parentNode.children[ii]){return this.config.parentNode.addNode(newChild,ii+1);}}};Zapatec.Tree.Node.prototype.getState=function(){var result={label:this.data.label,isSelected:this.data.isSelected,attributes:Zapatec.Utils.clone(this.data.attributes),isChecked:this.data.isChecked};if(this.isCreated&&!this.config.isRootNode){result.label=this.getLinkToLabelElement().innerHTML;}if(this.hasSubtree()){result.isExpanded=this.data.isExpanded;result.source=this.config.source;result.sourceType=this.config.sourceType;result.expandedIcon=this.data.expandedIcon;result.collapsedIcon=this.data.collapsedIcon;result.fetchingIcon=this.data.fetchingIcon;result.children=[];for(var ii=0;ii<this.children.length;ii++){result.children.push(this.children[ii].getState());}}else{result.elementIcon=this.data.elementIcon;}return result;};Zapatec.Tree.Node.prototype.rename=function(newLabel){this.fireEvent("rename",this.data.label,newLabel);this.data.label=newLabel;var labelElement=this.getLinkToLabelElement();Zapatec.Transport.setInnerHtml({html:newLabel,container:labelElement});};Zapatec.Tree.Utils={};Zapatec.Tree.Utils.convertLi2Json=function(liNode,compat){if(liNode==null||liNode.nodeType!=1||liNode.nodeName.toLowerCase()!='li'){return null;}var struct={attributes:{}};var ul=null;var expandedIcon=null;var collapsedIcon=null;var fetchingIcon=null;var icon=null;var labelEl=document.createElement("span");var cNodes=[];for(var ii=0;ii<liNode.childNodes.length;ii++){cNodes.push(liNode.childNodes[ii]);}for(var ii=0;ii<cNodes.length;ii++){var node=cNodes[ii];if(node.nodeType==1){if(node.nodeName.toLowerCase()=='img'){if(compat){if(icon==null){icon=node;}if(expandedIcon==null){expandedIcon=node;Zapatec.Utils.addClass(expandedIcon,"expandedIcon");continue;}else if(collapsedIcon==null){collapsedIcon=node;Zapatec.Utils.addClass(collapsedIcon,"collapsedIcon");continue;}if(icon==node){continue;}}else{if(/\belementIcon\b/.test(node.className)){icon=node;continue;}else if(/\bexpandedIcon\b/.test(node.className)){expandedIcon=node;continue;}else if(/\bcollapsedIcon\b/.test(node.className)){collapsedIcon=node;continue;}else if(/\bfetchingIcon\b/.test(node.className)){fetchingIcon=node;continue;}}}if(node.nodeName.toLowerCase()=='ul'){ul=node;continue;}}var appendNode=node;if(Zapatec.is_ie&&node.nodeType==1&&node.nodeName.toLowerCase()=="script"){appendNode=node;}else{appendNode=node.cloneNode(true);}labelEl.appendChild(appendNode);}if(Zapatec.is_khtml){var allChildren=labelEl.all?labelEl.all:labelEl.getElementsByTagName("*");for(var ii=0;ii<allChildren.length;ii++){var child=allChildren[ii];for(var jj=0;jj<child.attributes.length;jj++){var attr=child.attributes[jj];child.setAttribute(attr.nodeName,attr.nodeValue.replace(/"/g,"'"));}}}struct['label']=labelEl.innerHTML;if(Zapatec.is_opera){struct['label']=struct['label'].replace(/\\"/g,"'");}struct['isSelected']=liNode.className.match(/\bselected\b/)!=null;struct['isExpanded']=liNode.className.match(/\bexpanded\b/)!=null;struct['loadAlways']=liNode.className.match(/\bzpLoadAlways\b/)!=null;for(var ii=0;ii<liNode.attributes.length;ii++){var attr=liNode.attributes[ii];if(Zapatec.is_ie&&liNode.getAttributeNode(attr.nodeName)&&!liNode.getAttributeNode(attr.nodeName).specified){continue;}struct['attributes'][attr.nodeName.toLowerCase()]=attr.nodeValue;}if(ul==null){if(icon){Zapatec.Utils.addClass(icon,"elementIcon");var tmpIcon=document.createElement("SPAN");tmpIcon.appendChild(icon);struct['elementIcon']=tmpIcon.innerHTML;}}else{if(expandedIcon){var tmpIcon=document.createElement("SPAN");tmpIcon.appendChild(expandedIcon);struct['expandedIcon']=tmpIcon.innerHTML;}if(collapsedIcon){var tmpIcon=document.createElement("SPAN");tmpIcon.appendChild(collapsedIcon);struct['collapsedIcon']=tmpIcon.innerHTML;}if(fetchingIcon){var tmpIcon=document.createElement("SPAN");tmpIcon.appendChild(fetchingIcon);struct['fetchingIcon']=tmpIcon.innerHTML;}struct['children']=[];for(var ii=0;ii<ul.childNodes.length;ii++){var tmp=Zapatec.Tree.Utils.convertLi2Json(ul.childNodes[ii],compat);if(tmp!=null){struct['children'].push(tmp);}}}return struct;};Zapatec.Tree.Utils.xml2dom=function(node){if(node.nodeType==3){return document.createTextNode(node.nodeValue);}if(node.nodeType!=1){return null;}var el=Zapatec.Utils.createElement(node.nodeName);for(var ii=0;ii<node.attributes.length;ii++){var attr=node.attributes[ii];if(attr.name.toLowerCase()=="class"){el.className=node.getAttribute(attr.name);}else{el.setAttribute(attr.name,node.getAttribute(attr.name));}}if(node.hasChildNodes()){for(var ii=0;ii<node.childNodes.length;ii++){var childNode=Zapatec.Tree.Utils.xml2dom(node.childNodes[ii]);if(childNode!=null){el.appendChild(childNode);}}}return el;};Zapatec.Tree.Utils.convertXml2Json=function(itemNode){if(itemNode==null||itemNode.nodeType!=1||itemNode.nodeName.toLowerCase()!='item'){return null;}var struct={content:null,attributes:{}};var list=null;var labelEl=document.createElement("span");for(var ii=0;ii<itemNode.childNodes.length;ii++){var node=itemNode.childNodes[ii];if(node.nodeType!=1){continue;}if(node.nodeName.toLowerCase()=="attribute"&&node.getAttribute("name")){struct.attributes[node.getAttribute("name")]=Zapatec.is_ie?node.childNodes[0].nodeValue:node.textContent;continue;}if(node.nodeName.toLowerCase()=='list'){list=node;continue;}if(node.nodeName.toLowerCase()=='label'){for(var jj=0;jj<node.childNodes.length;jj++){labelEl.insertBefore(Zapatec.Tree.Utils.xml2dom(node.childNodes[jj]),labelEl.firstChild);}continue;}}struct['label']=labelEl.innerHTML;struct['isSelected']=itemNode.getAttribute("isSelected")=="true";struct['isExpanded']=itemNode.getAttribute("isExpanded")=="true";struct['loadAlways']=itemNode.getAttribute("loadAlways")=="true";struct['source']=itemNode.getAttribute("source");struct['sourceType']=itemNode.getAttribute("sourceType");if(list==null){struct['elementIcon']=itemNode.getAttribute("elementIcon");}else{struct['collapsedIcon']=itemNode.getAttribute("collapsedIcon");struct['expandedIcon']=itemNode.getAttribute("expandedIcon");struct['fetchingIcon']=itemNode.getAttribute("fetchingIcon");struct['children']=[];for(var ii=0;ii<list.childNodes.length;ii++){var tmp=Zapatec.Tree.Utils.convertXml2Json(list.childNodes[ii]);if(tmp!=null){struct['children'].push(tmp);}}}return struct;};Zapatec.Tree.Utils.getNodeIndex=function(node){if(!node||!node.config||!node.config.parentNode||!node.config.parentNode.children){return null;}for(var ii=0;ii<node.config.parentNode.children.length;ii++){if(node.config.parentNode.children[ii]==node){return ii;}}};Zapatec.Tree.Utils.getPrevNode=function(prevSelected){var index=Zapatec.Tree.Utils.getNodeIndex(prevSelected);if(index==null){return;}var prevNode=null;if(index>0){prevNode=prevSelected.config.parentNode.children[index-1];while(prevNode.hasSubtree()&&prevNode.data.isExpanded){prevNode=prevNode.children[prevNode.children.length-1];}}else if(!prevSelected.config.parentNode.config.isRootNode){prevNode=prevSelected.config.parentNode;}return prevNode;};Zapatec.Tree.Utils.getNextNode=function(prevSelected){var index=Zapatec.Tree.Utils.getNodeIndex(prevSelected);if(index==null){return;}var nextNode=null;if(prevSelected.hasSubtree()&&prevSelected.data.isExpanded&&prevSelected.children.length>0){nextNode=prevSelected.children[0];}else if(index<prevSelected.config.parentNode.children.length-1){nextNode=prevSelected.config.parentNode.children[index+1];}else if(!prevSelected.config.parentNode.config.isRootNode){nextNode=prevSelected.config.parentNode;index=Zapatec.Tree.Utils.getNodeIndex(nextNode);while(index==nextNode.config.parentNode.children.length-1){nextNode=nextNode.config.parentNode;if(nextNode.config.isRootNode){return;}index=Zapatec.Tree.Utils.getNodeIndex(nextNode);}nextNode=nextNode.config.parentNode.children[index+1];}return nextNode;};Zapatec.Tree.Utils.addIconClass=function(str,className){if(!str||!className){return str;}var md=str.match(/( class=['"])/i);if(md){return str.replace(/( class=['"])/i,"$1"+className+" ");}else{return str.replace(/^<img/,"<img class='"+className+"'");}};Zapatec.Tree.Utils.isRightClick=function(ev){if(!ev){ev=window.event;}if(!ev){return false;}var button=ev.button?ev.button:ev.whichreturn(button>1||button==1&&(Zapatec.is_opera||Zapatec.is_khtml&&ev.metaKey));};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -