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 相关文章推荐
再谈IE中Flash控件的自动激活 ObjectWrap
Mar 09 Javascript
JavaScript类库D
Oct 24 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
Jan 13 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
Vue2.0使用过程常见的一些问题总结学习
Apr 10 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
May 17 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
Jun 03 Javascript
vue获取当前点击的元素并传值的实例
Mar 09 Javascript
微信小程序通过保存图片分享到朋友圈功能
May 24 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
Oct 29 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 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读取30天之内的根据算法排序的代码
2008/04/06 PHP
使用php验证复选框有效性的示例
2013/11/13 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
解决vue props 拿不到值的问题
2018/09/11 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
微信小程序中的上拉、下拉菜单功能
2020/03/13 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
用Python编程实现语音控制电脑
2014/04/01 Python
详解Python中dict与set的使用
2015/08/10 Python
python 写的一个爬虫程序源码
2016/02/28 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python获取代码运行时间的实例代码
2018/06/11 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
2014年大学生自我评价
2014/01/19 职场文书
初三物理教学反思
2014/01/21 职场文书
人事专员职责
2014/02/22 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
自荐信格式范文
2015/03/04 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
SQLServer常见数学函数梳理总结
2022/08/05 MySQL