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 调试利器 Firebug使用详解六
Jul 05 Javascript
JavaScript 题型问答有答案参考
Feb 17 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
Jquery实现三层遍历删除功能代码
Apr 23 Javascript
javascript 函数及作用域总结介绍
Nov 12 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
Apr 17 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
Feb 05 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
vue2实现可复用的轮播图carousel组件详解
Nov 27 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
May 12 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
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
Javascript的匿名函数小结
2009/12/31 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
jQuery事件对象总结
2016/10/17 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
javascript中this关键字详解
2016/12/12 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
基于vue、react实现倒计时效果
2019/08/26 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
python基础教程之分支、循环简单用法
2016/06/16 Python
解决DataFrame排序sort的问题
2018/06/07 Python
python如何将多个PDF进行合并
2019/08/13 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
古汉语文学求职信范文
2014/03/16 职场文书
教书育人演讲稿
2014/09/11 职场文书
JavaScript继承的三种方法实例
2021/05/12 Javascript
Python制作春联的示例代码
2022/01/22 Python
海弦WR-800F
2022/04/05 无线电