JS三級(jí)可折疊菜單實(shí)現(xiàn)方法

字號(hào):


    本文實(shí)例講述了JS三級(jí)可折疊菜單實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
    .ASPX代碼:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="NavigateMenu.aspx.cs" Inherits="NavigateMenu" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
      <title>無標(biāo)題頁</title>
      <script type="text/javascript" src="JScript.js" ></script>
      <style type="text/css">
    *{
     margin: 0px;
     padding: 0px;
     border:0px;
    }
    #nav{
     width: 600px;
     margin: 0px;
     padding: 0px;
     font-size: 14px;
     line-height: 30px;
    }
    #nav li{
     width: 180px;
     padding-left: 20px;
     padding-bottom: 1px;
     list-style-image: none;
     list-style-type: none;
     background-color: #FFFFFF;
    }
    #nav a{
     padding-left: 20px;
     background-color: #BFBFBF;
     display: block;
     text-decoration: none;
    }
    #nav a:hover {
     background-color: #FF9175;
    }
    #nav li ul{
     padding-top: 1px;
     list-style-image: none;
     list-style-type: none;
    }
    #nav li li{
     padding-left: 0px;
    }
    #nav ul a{
     background-color: #EBEBEB;
    }
    .cx {
     display:none;
     visibility:hidden;
    }
    .ex {
     display:inherit;
     visibility:inherit;
    }
    </style>
    <script type="text/javascript" >
     window.onload=function(){
     statUp();
     }
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div id="Parent">
    <ul id="nav">
    <li><a href="javascript:void(0);" onclick="doMenu(this,'1')">菜單1</a>
     <ul>
     <li><a href="javascript:void(0);">菜單1_1</a></li>
     <li><a href="javascript:void(0);">菜單1_2</a></li>
     </ul>
    </li>
    <li><a href="javascript:void(0);" onclick="doMenu(this,'1')">菜單2</a>
     <ul>
     <li><a href="javascript:void(0);" onclick="doMenu(this,'2')" >菜單2_1</a>
     <ul>
     <li>菜單2_1_1</li>
     <li>菜單2_1_2</li>
     </ul>
     </li>
     <li><a href="javascript:void(0);" onclick="doMenu(this,'2')">菜單2_2</a>
      <ul>
     <li>菜單2_2_1</li>
     </ul>
     </li>
     </ul>
    </li>
    </ul>
    </div>
    </form>
    </body>
    </html>
    js文件代碼:
    function doMenu(obj,strDeep){
     var items=obj.parentNode.getElementsByTagName("ul");
     //獲取a 對(duì)象你節(jié)點(diǎn)li 下包含的 所有ul集合
     var itmUl;
     var deeps=strDeep; //strDeep 為當(dāng)前菜單的級(jí)數(shù)
     if(items.length>0){
     itmUl=items[0];
     alert(itmUl);
     }
     if(itmUl.className!="ex"){
     cxAll();//當(dāng)前節(jié)點(diǎn)為關(guān)閉狀態(tài)時(shí),先執(zhí)行關(guān)閉所有ul子菜單
     if(deeps=='2'){ //若要展開三級(jí)菜單當(dāng),還要將其二級(jí)父菜單展開
     itmUl.parentNode.parentNode.className="ex";
     }
     itmUl.className="ex"; //展開下級(jí)菜單
     }else{
     itmUl.className="cx";
     }
    }
    function statUp(){
     cxAll();
     var ulDom=document.getElementById("nav");
     var items=ulDom.getElementsByTagName("ul");
    }
    function cxAll(){
     var ulDom=document.getElementById("nav");
     var items=ulDom.getElementsByTagName("ul");
     for (var i=0;i<items.length;i++)
     {
     items[i].className="cx";
     }
    }
    希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。