JS三级可折叠菜单实现方法
本文实例讲述了JS三级可折叠菜单实现方法。分享给大家供大家参考,具体如下:
.ASPX代码:
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="NavigateMenu.aspx.cs"Inherits="NavigateMenu"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无标题页</title>
<scripttype="text/javascript"src="JScript.js"></script>
<styletype="text/css">
*{
margin:0px;
padding:0px;
border:0px;
}
#nav{
width:600px;
margin:0px;
padding:0px;
font-size:14px;
line-height:30px;
}
#navli{
width:180px;
padding-left:20px;
padding-bottom:1px;
list-style-image:none;
list-style-type:none;
background-color:#FFFFFF;
}
#nava{
padding-left:20px;
background-color:#BFBFBF;
display:block;
text-decoration:none;
}
#nava:hover{
background-color:#FF9175;
}
#navliul{
padding-top:1px;
list-style-image:none;
list-style-type:none;
}
#navlili{
padding-left:0px;
}
#navula{
background-color:#EBEBEB;
}
.cx{
display:none;
visibility:hidden;
}
.ex{
display:inherit;
visibility:inherit;
}
</style>
<scripttype="text/javascript">
window.onload=function(){
statUp();
}
</script>
</head>
<body>
<formid="form1"runat="server">
<divid="Parent">
<ulid="nav">
<li><ahref="javascript:void(0);"onclick="doMenu(this,'1')">菜单1</a>
<ul>
<li><ahref="javascript:void(0);">菜单1_1</a></li>
<li><ahref="javascript:void(0);">菜单1_2</a></li>
</ul>
</li>
<li><ahref="javascript:void(0);"onclick="doMenu(this,'1')">菜单2</a>
<ul>
<li><ahref="javascript:void(0);"onclick="doMenu(this,'2')">菜单2_1</a>
<ul>
<li>菜单2_1_1</li>
<li>菜单2_1_2</li>
</ul>
</li>
<li><ahref="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文件代码:
functiondoMenu(obj,strDeep){
varitems=obj.parentNode.getElementsByTagName("ul");
//获取a对象你节点li下包含的所有ul集合
varitmUl;
vardeeps=strDeep;//strDeep为当前菜单的级数
if(items.length>0){
itmUl=items[0];
alert(itmUl);
}
if(itmUl.className!="ex"){
cxAll();//当前节点为关闭状态时,先执行关闭所有ul子菜单
if(deeps=='2'){//若要展开三级菜单当,还要将其二级父菜单展开
itmUl.parentNode.parentNode.className="ex";
}
itmUl.className="ex";//展开下级菜单
}else{
itmUl.className="cx";
}
}
functionstatUp(){
cxAll();
varulDom=document.getElementById("nav");
varitems=ulDom.getElementsByTagName("ul");
}
functioncxAll(){
varulDom=document.getElementById("nav");
varitems=ulDom.getElementsByTagName("ul");
for(vari=0;i<items.length;i++)
{
items[i].className="cx";
}
}
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。