<script language=javascript>//本程序支持n行n级菜单展开,n级取决函数中父索引的个数Findex n.
//Picid,Trid,Tdid分别固定为图标id,显示表格id,显示表格id;
//0级菜单为一行,下级的菜单行列皆从1开始记数
//Picid,Trid,Tdid分别固定为图标id,显示表格id,显示表格id;
//0级菜单为一行,下级的菜单行列皆从1开始记数
//性能在显示20条一级时4级菜单时比较佳,在16一级时5级菜单可行,在10一级时能放6级菜单.关键看一级放多少条,其关系为每级相乘,小于100000则行得通
var a=["a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a"];//服务器传入数组
var b=["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"];
var c=["c","c","c","c","c","c","c","c","c","c","c","c","c","c","c","c","c"];
var d=["d","d","d","d","d","d","d","d","d","d","d","d","d","d","d","d","d"];
var temp1=0;//区别第0级菜单
var temp2=true;//Icorrect区别修不修正值
var a=["a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a"];//服务器传入数组
var b=["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"];
var c=["c","c","c","c","c","c","c","c","c","c","c","c","c","c","c","c","c"];
var d=["d","d","d","d","d","d","d","d","d","d","d","d","d","d","d","d","d"];
var temp1=0;//区别第0级菜单
var temp2=true;//Icorrect区别修不修正值
var Iarray=new Array();//存储1级菜单的修正值
for(var i=0;i<=100;i++){Iarray[i]=0;}//初始化,i的个数表第一级菜单的行数
for(var i=0;i<=100;i++){Iarray[i]=0;}//初始化,i的个数表第一级菜单的行数
function Icorrect(Index,Menugrade,arraylength,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9)//比较后修正菜单展开后层的真正位置//参数分别表本索引号,菜单等级,数组长度,爹索引号
{
switch(Menugrade)//原理为1级菜单修正值+他全部上级菜单的索引号+他自己的索引号就为当前的实际值.
{
case 1:{Index=Index+Iarray[Index];
break;}
case 2:{Index=Index+Iarray[Findex1]+Findex1;
break;}
case 3:{Index=Index+Iarray[Findex1]+Findex1+Findex2;
break;}
case 4:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3;
break;}
case 5:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4;
break;}
case 6:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5;
break;}
case 7:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5+Findex6;
break;}
case 8:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5+Findex6+Findex7;
break;}
case 9:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5+Findex6+Findex7+Findex8;
break;}
case 10:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5+Findex6+Findex7+Findex8+Findex9;
break;}
}
if(Menugrade==1&&temp2){var ii=Index;while(Iarray[++ii]!=null){Iarray[ii]+=arraylength;}}
if(Menugrade>1&&temp2)
{while(Iarray[++Findex1]!=null){Iarray[Findex1]+=arraylength;}}//区别第0级菜单
return Index;
}
/*Irequest(0,0,0)第一次使用//参数分别表本索引号,菜单等级,爹索引号
Irequest(1,1,0)Irequest(2,1,0)Irequest(3,1,0)2次使用
Irequest(1,2,2)Irequest(2,2,2)Irequest(3,2,2)3次使用(点的父级是第2项,故中间为2)
Irequest(1,3,2,1)Irequest(1,3,2,1)Irequest(1,3,2,1)4次使用(点的父级是第1项,故为1)
{
switch(Menugrade)//原理为1级菜单修正值+他全部上级菜单的索引号+他自己的索引号就为当前的实际值.
{
case 1:{Index=Index+Iarray[Index];
break;}
case 2:{Index=Index+Iarray[Findex1]+Findex1;
break;}
case 3:{Index=Index+Iarray[Findex1]+Findex1+Findex2;
break;}
case 4:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3;
break;}
case 5:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4;
break;}
case 6:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5;
break;}
case 7:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5+Findex6;
break;}
case 8:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5+Findex6+Findex7;
break;}
case 9:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5+Findex6+Findex7+Findex8;
break;}
case 10:{Index=Index+Iarray[Findex1]+Findex1+Findex2+Findex3+Findex4+Findex5+Findex6+Findex7+Findex8+Findex9;
break;}
}
if(Menugrade==1&&temp2){var ii=Index;while(Iarray[++ii]!=null){Iarray[ii]+=arraylength;}}
if(Menugrade>1&&temp2)
{while(Iarray[++Findex1]!=null){Iarray[Findex1]+=arraylength;}}//区别第0级菜单
return Index;
}
/*Irequest(0,0,0)第一次使用//参数分别表本索引号,菜单等级,爹索引号
Irequest(1,1,0)Irequest(2,1,0)Irequest(3,1,0)2次使用
Irequest(1,2,2)Irequest(2,2,2)Irequest(3,2,2)3次使用(点的父级是第2项,故中间为2)
Irequest(1,3,2,1)Irequest(1,3,2,1)Irequest(1,3,2,1)4次使用(点的父级是第1项,故为1)
p0=Icorrect(0,0,arraylength,0);//0级,前4个参必有,否则错
var p1=Icorrect(10,1,arraylength,0);//1级使用方法,其它以此推
var p2=Icorrect(11,2,arraylength,9);
var p3=Icorrect(11,3,arraylength,9,8);
var p4=Icorrect(10,4,arraylength,5,9,6);
Iresponse()使用方法同上*/
function Iresponse(Index,Menugrade,arraylength,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9,a,b,c,d)//改写元素内容.分别表本索引号,菜单等级,a数组长度,爹索引号;abck代传入的数组参数
{
arraylength=a.length;
temp2=true;
var factualindex=Icorrect(Index,Menugrade,arraylength,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9);
++Menugrade;
var temp=0;
var con=Menugrade+"+";//定义string变量
while(a[temp++])
{
con+=Menugrade+'<img id="Picid" οnclick="Irequest(';//造string
con=con+temp+','+Menugrade+',';
if(Findex1)
{con=con+Findex1+',';
if(Findex2)
{con=con+Findex2+',';
if(Findex3)
{con=con+Findex3+',';
if(Findex4)
{con=con+Findex4+',';
if(Findex5)
{con=con+Findex5+',';
if(Findex6)
{con=con+Findex6+',';
if(Findex7)
{con=con+Findex7+',';
if(Findex8)
{con=con+Findex8+',';
if(Findex9)con=con+Findex9+',';
}
}
}
}
}
}
}
}
if(temp1<1){con=con+'0';}//区别第0级菜单
else con+=Index;
con+=' )"></img><table ID="Table1"><tr style="display:none" id="Trid"><td colspan="5" id="Tdid" style="padding:0px"><div style="width:240px;margin-left:18px;border:1px solid black;background-color:lightyellow;color:black;padding:2px">正在读取关于本主题的跟贴,请稍侯……</div></td></tr></table>';
}//alert(con);
temp1++;//区别第0级菜单
document.all.Tdid[factualindex].innerHTML=con;//写内容
var temp=0;
var con=Menugrade+"+";//定义string变量
while(a[temp++])
{
con+=Menugrade+'<img id="Picid" οnclick="Irequest(';//造string
con=con+temp+','+Menugrade+',';
if(Findex1)
{con=con+Findex1+',';
if(Findex2)
{con=con+Findex2+',';
if(Findex3)
{con=con+Findex3+',';
if(Findex4)
{con=con+Findex4+',';
if(Findex5)
{con=con+Findex5+',';
if(Findex6)
{con=con+Findex6+',';
if(Findex7)
{con=con+Findex7+',';
if(Findex8)
{con=con+Findex8+',';
if(Findex9)con=con+Findex9+',';
}
}
}
}
}
}
}
}
if(temp1<1){con=con+'0';}//区别第0级菜单
else con+=Index;
con+=' )"></img><table ID="Table1"><tr style="display:none" id="Trid"><td colspan="5" id="Tdid" style="padding:0px"><div style="width:240px;margin-left:18px;border:1px solid black;background-color:lightyellow;color:black;padding:2px">正在读取关于本主题的跟贴,请稍侯……</div></td></tr></table>';
}//alert(con);
temp1++;//区别第0级菜单
document.all.Tdid[factualindex].innerHTML=con;//写内容
}
function Irequest(Index,Menugrade,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9,Findex10)//放入页面中的请求函数.分别表本索引号,菜单等级,爹索引号有几级入几个参
{//初始请求为Irequest(0,0,0)
temp2=false;//判断是不写入修正值
var tempindex=Icorrect(Index,Menugrade,0,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9,Findex10);
if (1)
{
if (document.all.Trid[tempindex].style.display!="block")
{document.all.Trid[tempindex].style.display="block";
Iresponse(Index,Menugrade,0,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9,a,b,c,d);}
else
{
document.all.Trid[tempindex].style.display="none";
/*temp2=false;
tempindex=Icorrect(Index,Menugrade,0,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9,Findex10);
while(Iarray[++Findex1]!=null){Iarray[Findex1]+=arraylength;} */
}
}
{
if (document.all.Trid[tempindex].style.display!="block")
{document.all.Trid[tempindex].style.display="block";
Iresponse(Index,Menugrade,0,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9,a,b,c,d);}
else
{
document.all.Trid[tempindex].style.display="none";
/*temp2=false;
tempindex=Icorrect(Index,Menugrade,0,Findex1,Findex2,Findex3,Findex4,Findex5,Findex6,Findex7,Findex8,Findex9,Findex10);
while(Iarray[++Findex1]!=null){Iarray[Findex1]+=arraylength;} */
}
}
}
</script>
<img id="Picid" οnclick="Irequest(0,0,0)"></img>
<table ID="Table1">
<tr style="display:none" id="Trid">
<td colspan="5" id="Tdid" style="padding:0px">
<div style="width:240px;margin-left:18px;border:1px solid black;background-color:lightyellow;color:black;padding:2px">正在读取关于本主题的跟贴,请稍侯……
</div>
</td>
</tr>
</table>
<img id="Img1" οnclick="Irequest(0,1,0)"></img>
<table ID="Table2">
<tr style="display:block" id="Trid">
<td colspan="5" id="Tdid" style="padding:0px">
<div style="width:240px;margin-left:18px;border:1px solid black;background-color:lightyellow;color:black;padding:2px">正在读取关于本主题的跟贴,请稍侯……
</div>
</td>
</tr>
</table>