按照你的意思就是每次每一层只打开一个,是吧?你用一个数组去记录每一层当前打开的项目:如arrCurrNode(0)代表第一层当前打开的项目,arrCurrNode(1)代表第二层当前打开的项目......
比如你有五层,现在你点击第二层的某个节点,先判断数组元素arrCurrNode(1)中记录的节点是否和当前点击的节点相同,若不相同,则关闭arrCurrNode(1)到arrCurrNode(4)中非空(要判断)的对象,再打开当前点击的节点,并将arrCurrNode(1) = 当前点击的节点即可且将arrCurrNode(2)到arrCurrNode(4)等于null;若相同,则表明目前单击的节点是打开的,如果你想让让其关闭,则关闭arrCurrNode(1)到arrCurrNode(4)中非空(要判断)的对象,并将arrCurrNode(1)到arrCurrNode(4)等于null即可。

解决方案 »

  1.   

    <html>
    <head>
    <meta http-equiv='content-type' content='text/html; charset=gb2312'>
    <style>
    body,td{font:12px Verdana;color:333333}
    .s1{border-width:1px;border-style:solid;border-color:#0090cc #0070b0 #0070b0 #0090cc;font:12px Verdana;
    cursor:default;color:ffffff;background:#0080c0;}
    .s2{cursor:default;color:ffffff;background:#0080c0;border:0 solid;font:12px Verdana;}
    .s3{border-width:1px;border-style:solid;border-color:#0070b0 #0090cc #0090cc #0070b0;color:ffffff;font:12px Verdana;}
    </style>
    </head>
    <body bgcolor=0080c0 topmargin=0 leftmargin=0>
    <span id=idM1 style='visibility:hidden;position:absolute'>
    文件,编辑,查看,工具,搜索,帮助
    |新建-0,打开,关闭,hr,打印,打印预览,打印设置,hr,退出
    |复制,剪切,粘贴,hr,格式,插入,字数统计
    |工具栏,状态栏,导航栏,hr,全屏,字体
    |选项,配置工具,文件管理器,程序管理器,用户管理器
    |在系统中搜索,在文件中搜索
    |关于Orgnizer,联系开发作者,hr,帮助主题
    |0,
    </span>
    <script>
    var str,ss,arr1;
    str=idM1.innerHTML;
    arr1=str.split("|");
    </script>
    <div style='margin-left:4;border-bottom:1px solid #0070b0;padding:1'>
    <script>
    var va1=0,va2=0,va3=0,va4=0,st1;
    </script>
    <script>
    str1=arr1[0];
    Menus1=str1.split(',');
    for(i=0;i<Menus1.length;i++){
    document.write("<input type=button value="+Menus1[i]+" onclick='javascript:document.forms[0].submit();'");
    document.write("onFocus='this.blur();' style='width:40;height:18;margin-left:1' class=s2 d="+i+">");
    }
    </script>
    </div>
    <div id=idMonth style='position:absolute;top:20;left:6;width:90;background:0080c0;
    z-index:10;visibility:hidden' class=s1>
    <script>
    function fFormM(){
    va1=1;
    var item=event.srcElement.d;
    var pixelLeft=6+item*41;
    item=parseInt(item)+1;
    str=arr1[item];
    Menusi=str.split(',');
    var s='';
    for(i=0;i<Menusi.length;i++){
    if(Menusi[i]=='hr'){
    s=s+"<table width='100%' border=0 cellspacing=0 cellpadding=0 height=2 ";
    s=s+"style='margin:2 0 2 0'><tr><td height=1 bgcolor=0070b0></td></tr>";
    s=s+"<tr><td height=1 bgcolor=0090cc></td></tr></table>";}
    else{
    s=s+"<input type=button class=s2 value="+Menusi[i]+" d=sub"
    s=s+" onFocus='this.blur();' style='width:120;height:18;text-align:left;padding-left:16'"
    s=s+"onmouseover='f1()' onmouseout='f2()' onClick='f3()' ><br>"}
    }
    idMonth.style.left=pixelLeft;
    idMonth.innerHTML=s;
    idMonth.style.visibility="visible";
    }
    function fKillM(){
    va1=0;
    setTimeout('idMonth.style.visibility="hidden";',100);
    }
    function f1(){
    clearTimeout(st1);
    event.srcElement.style.background='ffee00';
    event.srcElement.style.color='666666';}
    function f2(){
    st1=setTimeout('fKillM();',400);
    event.srcElement.style.background='0080c0';
    event.srcElement.style.color='ffffff';}
    function f3(){
    fKillM();
    alert('clicked');
    }
    </script>
    </div>
    <script>
    for(var prop in document.all)
    if(document.all[prop].className=='s2'){
    document.all[prop].style.cursor='hand';
    document.all[prop].onfocus=doFocus;
    document.all[prop].onmouseover=doOver;
    document.all[prop].onmouseout=doOut;
    document.all[prop].onmousedown=doDown;
    document.all[prop].onmouseup=doUp;
    document.all[prop].onclick=fFormM;}function doFocus(){
    event.srcElement.blur();}
    function doOver(){
    if(va1==1){
    clearTimeout(st1);
    event.srcElement.className="s3";
    event.srcElement.style.background="0070b0";
    fFormM();}
    else event.srcElement.className="s1";}
    function doOut(){
    event.srcElement.className="s2";
    event.srcElement.style.background="0080c0";}
    function doDown(){
    event.srcElement.className="s3";
    event.srcElement.style.background="0072b0";}
    function doUp(){
    }
    </script>
      

  2.   

    我的问题解决了,谢谢两位给的启发。
    我的程序实现如下,我认为这里的关键就是将js脚本turnit3写在循环菜单的后面,这样就可以确定菜单的数目,以前放前面我还真的就卡在那里了  :)
    menucount=0
    do while not rs333.eof 
    menucount=menucount+1
    <div id="<%="Menu"&menucount%>" style=" cursor:hand"  onclick="turnit3(<%="Content"&menucount%>)">
    <%if trim(rs333("id"))=trim(session("titleid")) then '当前项打开%>
     <!--div id="<%="Content" & rs333("id")%>" -->
     <div id="<%="Content"&menucount%>" >
     <%else%>
     <!--div id="<%="Content" & rs333("id")%>" style="display:none"-->
     <div id="<%="Content"&menucount%>" style="display:none">
     <%end if
    rs333.movenext
    loop
    %> function turnit3(sub11)
    {
    var count1=<%=menucount%>;
    var str='';
    for (i=1;i<count1+1;i++)
    {
    str='Content'+i+'.style.display="none"';
    eval(str);
    }
    if(sub11.style.display=="none")
    {
    sub11.style.display="";
    }
    else
    {
         sub11.style.display="none";
         }
    }