设置你对应菜单的class
MenuBox为展开  MenuBox2为收起

解决方案 »

  1.   


    我想它展开一个,收起另一个,MenuBox为展开  MenuBox2为收起我知道,但如果都设置MenuBox就都展开了,都设置MenuBox2就都收起了,如何能展开一个收起另一个?永远只保持一个是展开的?默认初使第一个为展开状态
      

  2.   


    function ExChgClsName(Obj,NameA,NameB){
        var Menus=["Menu_0","Menu_1","Menu_2"];//所有节点对象ID集合
        var Obj=document.getElementById(Obj)?document.getElementById(Obj):Obj;
        if(Obj.className==NameA)//如果当前点击的菜单是展开就收起
        {
            Obj.className=NameB;
            return;
        }
        //先收起所有菜单
        for (var i = 0,len=Menus.length; i <len; i++) {
            document.getElementById(Menus[i]).className=NameB;
        };
    //展开当前点击节点
        Obj.className=NameA;
     }修改了一下这个方法,可以满足你的要求, 思路就是当要展开一个节点时先把所有节点收起,再展开当前点击的节点
      

  3.   

    一样的,不行哦,提示 当前脚本发生错误:
    属性“showMenu”的值为 null、未定义或不是 function 对象
    期待真正的高手 !
      

  4.   

    试试我这个,我以亲测可以达到你要的效果,同一时刻只有一个是展开的,点击的展开,其他的都折叠 <script type="text/javascript">
        <!--
        function ExChgClsName(Obj,NameA,NameB){
           var Menus=["Menu_0","Menu_1","Menu_2"];
    for (var i = 0; i < Menus.length; i++) {
        if (Obj != Menus[i]) {
        document.getElementById(Menus[i]).className=NameB;
        }
        else{
        var Obj=document.getElementById(Obj)?document.getElementById(Obj):Obj;
        Obj.className=NameA;
        }
        };
        }
        function showMenu(iNo){
        ExChgClsName("Menu_"+iNo,"MenuBox","MenuBox2");
        }
        -->
        </script>