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中的parseInt使用技巧
Sep 03 Javascript
JS 退出系统并跳转到登录界面的实现代码
Jun 29 Javascript
jQuery如何防止这种冒泡事件发生
Feb 27 Javascript
浅谈jQuery中setInterval()方法
Jul 07 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
Sep 28 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
Mar 01 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
浅谈开发eslint规则
Oct 01 Javascript
浅谈redux, koa, express 中间件实现对比解析
May 23 Javascript
七行JSON代码把你的网站变成移动应用过程详解
Jul 09 Javascript
Vue常用API、高级API的相关总结
Feb 02 Vue.js
精通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+javascript实现二级级联菜单的制作
2008/05/06 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
JS 判断代码全收集
2009/04/28 Javascript
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
Python标准库shutil用法实例详解
2018/08/13 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
教育技术学专业职业规划书
2014/03/03 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
小学优秀教师先进事迹材料
2014/12/16 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
安全教育培训心得体会
2016/01/15 职场文书
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android