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代码
Aug 13 Javascript
js取得url地址参数实例
Feb 22 Javascript
JS上传前预览图片实例
Mar 25 Javascript
Jquery倒数计时按钮setTimeout的实例代码
Jul 04 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
Mar 23 Javascript
JQuery勾选指定name的复选框集合并显示的方法
May 18 Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
Sep 04 Javascript
关于使用axios的一些心得技巧分享
Jul 02 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
js实现div色块拖动录制
Jan 16 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
laravel批量生成假数据的方法
2019/10/09 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
JS实现监控微信小程序的原理
2018/06/15 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
python开发之list操作实例分析
2016/02/22 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
班组长的岗位职责
2013/12/09 职场文书
宿舍管理制度范本
2015/08/07 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP