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.boxy插件的iframe扩展代码
Jul 02 Javascript
jquery 单击li防止重复加载的实现代码
Dec 24 Javascript
AngularJS学习笔记之TodoMVC的分析
Feb 22 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
Feb 08 Javascript
Vue.js tab实现选项卡切换
May 16 Javascript
JS库之wow.js使用方法
Sep 14 Javascript
Vue $emit $refs子父组件间方法的调用实例
Sep 12 Javascript
小程序实现列表点赞功能
Nov 02 Javascript
JavaScript变速动画函数封装添加任意多个属性
Apr 03 Javascript
vue3修改link标签默认icon无效问题详解
Oct 09 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
Dec 30 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
Aug 03 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循环获取GET和POST值的代码
2008/04/09 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
php验证码实现代码(3种)
2015/09/07 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
javascript中Function类型详解
2015/04/28 Javascript
简单实现js页面切换功能
2021/01/10 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
Python+Opencv识别两张相似图片
2020/03/23 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
详解Python中的测试工具
2019/06/09 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
PyQt5实现简单的计算器
2020/05/30 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
const和static readonly区别
2013/05/20 面试题
外语专业毕业生自荐信
2014/04/14 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
加强作风建设工作总结
2014/10/23 职场文书
保研推荐信格式
2015/03/25 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python