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 相关文章推荐
教你如何使用node.js制作代理服务器
Nov 26 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
解决Angular.Js与Django标签冲突的方案
Dec 20 Javascript
AngularJS学习第二篇 AngularJS依赖注入
Feb 13 Javascript
Angular 4中如何显示内容的CSS样式示例代码
Nov 06 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
微信小程序使用Vant Weapp组件库的方法步骤
Aug 01 Javascript
ionic3双击返回退出应用的方法
Sep 17 Javascript
vue.js 实现a标签href里添加参数
Nov 12 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
Aug 11 Javascript
angular共享依赖的解决方案分享
Oct 15 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
模仿OSO的论坛(一)
2006/10/09 PHP
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
php实现微信支付之现金红包
2018/05/30 PHP
JS控制表格隔行变色
2006/06/26 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
js中开关变量使用实例
2017/02/24 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
python使用tornado实现简单爬虫
2018/07/28 Python
python实现飞机大战游戏
2020/10/26 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
python爬虫工具例举说明
2020/11/30 Python
python3判断IP地址的方法
2021/03/04 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
动物学专业毕业生求职信
2013/10/11 职场文书
预备党员思想汇报范文
2014/01/11 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
仓库规划计划书
2014/04/28 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
少年雷锋观后感
2015/06/10 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
OpenCV 图像梯度的实现方法
2021/07/25 Python
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers