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

📄 tree.js

📁 这是我上次报java培训时
💻 JS
字号:
<script  >
function open_url(URL)
{
 window.parent.MainFrame.location.href=URL;
}
function TreeItem(text,action)
{
 this.text=text; 
 this.action=action; 
 this.children=new Array();
 this.tree=null;
 this.id=""; 
 this.parent=null;
 this.addChild=TreeItem_addChild;
}

function Tree_findUnderlines(str)
{
 var i,j;
 for(i=0,j=0;i<str.length;i++) if(str.charAt(i)==='_') j++;
 return j;
}
function TreeItem_addChild()
{
 var child;
 var i;
 for(i=0;i<arguments.length;i++)
 {
  child=arguments[i];
  this.children[this.children.length]=child;
  child.id=this.id+"_"+(this.children.length-1);
  child.tree=this.tree;
  child.parent=this;
 }
}
function Tree_show()
{
 var rowStr="<tr height="+this.itemHeight+" style='background:"+this.itemBackground;
 var rowDisplay=rowStr+";display:;'><td nowrap id=";
 var rowHide=rowStr+";display:none;'><td nowrap id=";
 var collapseStr="<img height="+this.itemHeight+" width="+this.itemHeight+" align=absmiddle style='cursor:hand;'onclick='"+this.name+".click(this.parentNode.id);' src='";
 var collapseStr1=collapseStr+this.UNFOLD_IMG+"'>";
 var collapseStr2=collapseStr+this.FOLDER_IMG+"'>";
 var collapseStr3=collapseStr+this.FILE_IMG+"'>";
 var actionStr="<a onmouseover='this.style.color=\""+this.itemOverColor+"\";' "+
           "onmouseout='this.style.color=\""+this.itemColor+"\";' "+
    "style='color:"+this.itemColor+";cursor:hand;font-family:times new roman;font-size:"+
     (this.itemHeight*9/20)+"pt;' onclick='"+this.name+".click(this.parentNode.id);'>";
 var indentStr="<img align=absmiddle width="+this.itemHeight+" height="+this.itemHeight+" src='";
 var indentStrLine=indentStr+this.LINE_IMG+"'>";
 var indentStrEmpty=indentStr+this.EMPTY_IMG+"'>";
 var indentStrUpLine=indentStr+this.UPLINE_IMG+"'>";
 var indentStrMiddleLine=indentStr+this.MIDDLELINE_IMG+"'>";
 var temp="";
 var n,i,top,stack,parent,chain=new Array(),tail;

 //this.root.addChild(this.selfItem);
 //this.selfItem.addChild(this.versionsItem,this.referenceItem);
 document.write("<table cellspacing=0 cellpadding=0 bgcolor='#B2DCF7' style='table-layout:fixed;'>");
 stack=new Array(); 
 stack[0]=this.root;
 while(stack.length>0)
 { 
  top=stack[stack.length-1];
  stack.length--;
  n=this.findUnderlines(top.id);
  if(n<2)  temp=rowDisplay+top.id+">";
  else  temp=rowHide+top.id+">";
  chain.length=0;
  tail=top;
  while(tail!=null) {chain[chain.length]=tail;tail=tail.parent;}
  for(i=chain.length-1;i>=2;i--)
  {
      if(chain[i-1].id!=chain[i].children[chain[i].children.length-1].id)
         temp+=indentStrLine;
      else
         temp+=indentStrEmpty;
  }
  if(n>1 && top.id==top.parent.children[top.parent.children.length-1].id)
         temp+=indentStrUpLine;
  else if(n>1)
         temp+=indentStrMiddleLine;
 
  if(top.children.length>0)
  if(n==0)temp+=collapseStr1;
  else temp+=collapseStr2;
  else temp+=collapseStr3;
  temp+=(actionStr+top.text+"</a></td></tr>");
  for(i=top.children.length-1;i>=0;i--) stack[stack.length]=top.children[i];
  document.write(temp);
 }
 document.write("</table>");
}
var last_item;  //记录上次点击的树
var last_e;       //记录上次点击的元素
function Tree_click(itemID)
{
 var length;
 var e=window.event.srcElement;
 var item=this.findItem(itemID);
 //执行子节点
 if(e.tagName.toLowerCase()==="a") eval(item.action);
 //打开父节点
 else
 {  
  var i,s;
  if(item.children.length>0)
  {
   if(e.src.indexOf(this.FOLDER_IMG)>=0)
   {
	    if(last_item!=null&&last_item!="")
           Close_lasttree(last_item);   //将上次打开的树关闭
    e.src=this.UNFOLD_IMG;
    last_e = e;             //记录上次点击的元素
	last_item = item;  //记录上次点击的树
    var stack=new Array();
    length=item.children.length;
    for(i=length-1;i>=0;i--)stack[stack.length]=item.children[i];
    var top;
    while(stack.length>0)
    {
     top=stack[stack.length-1];stack.length--;
     document.all(top.id).parentNode.style.display="";
     if(top.children.length>0 && 
        document.all(top.id).lastChild.previousSibling.src.indexOf(this.UNFOLD_IMG)>=0)
        for(i=top.children.length-1;i>=0;i--)stack[stack.length]=top.children[i];
    }             
   }
   //关闭父节点
   else
   {
    e.src=this.FOLDER_IMG;
    var stack=new Array();
    for(i=item.children.length-1;i>=0;i--)
     stack[stack.length]=item.children[i];
    var top;
    while(stack.length>0)
    {
     top=stack[stack.length-1];stack.length--;
     document.all(top.id).parentNode.style.display="none";
     for(i=top.children.length-1;i>=0;i--) stack[stack.length]=top.children[i];
    }             
   }
  } 
 }
 if(this.elementClicked.length!=0)
  document.all(this.elementClicked).lastChild.style.background=this.itemBackground;
 this.elementClicked=itemID; 
 document.all(this.elementClicked).lastChild.style.background=this.selectedItemBackground;
}

//将上次打开的树关闭
function Close_lasttree(item)
{
//将上次打开的树的图片换过来
 if(last_e!=null&&last_e!="")
 last_e.src ="web_page/images/fold.gif";
//将上次打开的树的子节点隐藏
 if(item.children.length>0)
  {
	var stack=new Array();
    for(i=item.children.length-1;i>=0;i--)
     stack[stack.length]=item.children[i];
    var top;
    while(stack.length>0)
    {
     top=stack[stack.length-1];stack.length--;
     document.all(top.id).parentNode.style.display="none";
     for(i=top.children.length-1;i>=0;i--) stack[stack.length]=top.children[i];
    }   
  }
}
function Tree_findItem(id)
{
 var root=this.root;
 var item=root;
 if(item.id==id) return item;
 
 var i;
 for(i=0;i<root.children.length;i++)
 {
  item=root.children[i];
  if(item.id==id) return item;
  if(this.findUnderlines(item.id)>this.findUnderlines(id)) return null;
  if(id.indexOf(item.id)==0 && id.charAt(item.id.length)=='_')
  {
   i=-1;root=item;
  }
 }
 return null;
}

</script>

⌨️ 快捷键说明

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