<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>原生js实现二级伸缩菜单</title>
<style>
*{
margin:0;
padding:0;
}
ul,li{
list-style: none;
}
.closed{
display: block;
width: 200px;
background-color: coral;
}
#manager ul li{
width: 200px;
line-height: 30px;
text-align: center;
cursor: pointer;
}
.hide{
display: none;
}
.show{
display: block;
}
.open{
display: block;
background-color: coral;
}
.hide{
display: none;
}
#manager ul li.pro{
border:1px solid #fff;
}
#manager ul li ul li{
padding:3px 0;
border: 0;
color:lightgray;
line-height: 20px;
border-top:1px solid #fff;
background-color: darkorchid;
}
#manager ul li ul li:hover{
color: #fff;
}
#manager ul li ul li:last-child{
border-bottom:1px solid #fff;
}
</style>
</head>
<body>
<div id="manager">
<ul class="tree">
<li class="pro">
<span class="open" onclick="toggleTable(this)">考勤管理</span>
<ul class="show">
<li>日常考勤</li>
<li>请假申请</li>
<li>加班/出差</li>
</ul>
</li>
<li class="pro">
<span class="closed" onclick="toggleTable(this)">信息中心</span>
<ul class="hide">
<li>通知公告</li>
<li>公司新闻</li>
<li>规章制度</li>
</ul>
</li>
<li class="pro">
<span class="closed" onclick="toggleTable(this)">协同办公</span>
<ul class="hide">
<li>公文流转</li>
<li>文件中心</li>
<li>内部邮件</li>
<li>即时通讯</li>
<li>短信提醒</li>
</ul>
</li>
<li class="pro">
<span class="closed" onclick="toggleTable(this)">合同管理</span>
<ul class="hide">
<li>内部合同</li>
<li>外部合同</li>
<li>到期合同</li>
<li>未签合同</li>
<li>保密合同</li>
</ul>
</li>
<li class="pro">
<span class="closed" onclick="toggleTable(this)">人事流程</span>
<ul class="hide">
<li>人事入职</li>
<li>职工保险</li>
<li>职工升值</li>
<li>薪资计划</li>
<li>员工福利</li>
</ul>
</li>
<li class="pro">
<span class="closed" onclick="toggleTable(this)">客户管理</span>
<ul class="hide">
<li>企业客户</li>
<li>一般客户</li>
<li>重要客户</li>
<li>小区客户</li>
<li>外地客户</li>
</ul>
</li>
</ul>
</div>
<script src="js/jquery-3.2.1.min.js"></script>
<script>
function toggleTable(span){
// 如果span的class为open
if(span.className=="open"){
// 将span的class设为closed
span.className="closed";
// 将span的下一个兄弟元素的class改为hide
span.nextElementSibling.className="hide";
}else{//否则
// 查找class为tree的元素下的一个class为open的span,保存在open中
var open=document.querySelector("[class=tree] span[class=open]");
if(open!=null){
// 设置open的class为closed
open.className="closed";
// 设置open的下一个兄弟元素的class为hide
open.nextElementSibling.className="hide";
}
span.className="open";
span.nextElementSibling.className="show";
}
}
</script>
</body>
</html>