JS三级可折叠菜单实现方法


Posted in Javascript onFebruary 29, 2016

本文实例讲述了JS三级可折叠菜单实现方法。分享给大家供大家参考,具体如下:

.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>无标题页</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 对象你节点li 下包含的 所有ul集合
 var itmUl;
 var deeps=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";
 }
}
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";
 }
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 继承详解(一)
Jul 13 Javascript
js随机颜色代码的多种实现方式
Apr 23 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
JS预览图像将本地图片显示到浏览器上
Aug 25 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
Javascript中的方法和匿名方法实例详解
Jun 13 Javascript
深入学习AngularJS中数据的双向绑定机制
Mar 04 Javascript
AngularJS表单验证中级篇(3)
Sep 28 Javascript
深入理解bootstrap框架之入门准备
Oct 09 Javascript
Angular和百度地图的结合实例代码
Oct 19 Javascript
vue2配置scss的方法步骤
Jun 06 Javascript
react中Suspense的使用详解
Sep 01 Javascript
精通JavaScript的this关键字
May 28 #Javascript
javascript正则表达式总结
Feb 29 #Javascript
javascript计时器编写过程与实现方法
Feb 29 #Javascript
javascript插件开发的一些感想和心得
Feb 28 #Javascript
详解Javascript中的Object对象
Feb 28 #Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 #Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
Feb 27 #Javascript
You might like
德生PL990的分析评价
2021/03/02 无线电
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
php获取url参数方法总结
2014/11/13 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
python通过post提交数据的方法
2015/05/06 Python
Python手机号码归属地查询代码
2016/05/04 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
Python input函数使用实例解析
2019/11/22 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
自我鉴定写作要点
2014/01/17 职场文书
人事部岗位职责范本
2014/03/05 职场文书
学生请假条
2014/04/11 职场文书
英语教育专业自荐信
2014/05/29 职场文书
营销学习心得体会
2014/09/12 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
数学教师个人工作总结
2015/02/06 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL