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 相关文章推荐
Extjs入门之动态加载树代码
Apr 09 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
Mar 01 Javascript
Java/JS获取flash高宽的具体方法
Dec 27 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
May 27 Javascript
Knockoutjs 学习系列(二)花式捆绑
Jun 07 Javascript
微信小程序实现保存图片到相册功能
Nov 30 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
Mar 14 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 Javascript
原生js实现自定义滚动条
Jan 20 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
php flv视频时间获取函数
2010/06/29 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
python线程join方法原理解析
2020/02/11 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
合作协议书怎么写
2014/04/18 职场文书
运动会口号8字
2014/06/07 职场文书
离职信范本
2015/06/23 职场文书
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
vue 自定义组件添加原生事件
2022/04/21 Vue.js
Java版 单机五子棋
2022/05/04 Java/Android