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获得内容和属性方法及示例
Dec 02 Javascript
网页右下角弹出窗体实现代码
Jun 05 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
Jan 22 Javascript
AngularJS 遇到的小坑与技巧小结
Jun 07 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
Vue中如何实现轮播图的示例代码
Jul 27 Javascript
通过示例彻底搞懂js闭包
Aug 10 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 Javascript
JointJS流程图的绘制方法
Dec 03 Javascript
一些手写JavaScript常用的函数汇总
Apr 16 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
关于element-ui表单中限制输入纯数字的解决方式
Sep 08 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接口与接口引用的深入解析
2013/08/09 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php实现求相对时间函数
2015/06/15 PHP
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
JavaScript面象对象设计
2008/04/28 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
Javascript var变量隐式声明方法
2009/10/19 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
Yahoo的PHP面试题
2014/05/26 面试题
司马光教学反思
2014/02/01 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
项目投资意向书范本
2015/05/09 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
Redis可视化客户端小结
2021/06/10 Redis
MySQL基于索引的压力测试的实现
2021/11/07 MySQL