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 相关文章推荐
jQuery插件制作之全局函数用法实例
Jun 01 Javascript
详解js实现线段交点的三种算法
Aug 09 Javascript
JS简单去除数组中重复项的方法
Sep 13 Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
Jul 12 Javascript
通过实例解析JavaScript for in及for of区别
Jun 15 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
Jul 07 Javascript
详解Vue中的自定义指令
Dec 07 Vue.js
使用refresh_token实现无感刷新页面
Apr 26 Javascript
JS高级程序设计之class继承重点详解
Jul 07 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
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
php中file_exists函数使用详解
2015/05/08 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
js实现表格字段排序
2014/02/19 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
javaScript封装的各种写法
2017/08/14 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
Python查看多台服务器进程的脚本分享
2014/06/11 Python
python进程管理工具supervisor使用实例
2014/09/17 Python
Python实现包含min函数的栈
2016/04/29 Python
用Python解决x的n次方问题
2019/02/08 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
Python实现仿射密码的思路详解
2020/04/23 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
2014年会演讲稿范文
2014/01/06 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
高三学习决心书
2014/03/11 职场文书
英文邀请函
2015/02/02 职场文书
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python