简单实现js点击展开⼆级菜单功能
虽然,jQuery已经⾮常好⽤了,但是实际的开发项⽬中,还是有很多限制,⽐如项⽬组奇葩的要求,不能使⽤任何插件,当然,也是考虑插件占⽤资源,毕竟100+KB对与⼩型项⽬来说还是⾮常⼤的。我最近就遇到做个点击展开⼆级菜单的要求,当然只能⽤原⽣的JS去写来实现,我借鉴了⽹上的⼀个案例,补充⼀下,分享⼀下:
如果,默认打开页⾯进来时⼆级菜单是隐藏的,需要点击才能展现⼆级菜单,再点击就是隐藏⼆级菜单。这⾥有两个点,实现展现和隐藏⽤display="block"和display="none",另外就是要做⼀个判断,if  else的判断当前是block还是none。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
#sub_menu_1,#sub_menu_2{
display: none;
}
ul li:hover{
cursor: pointer;
}
</style>
</head>
<body>
<ul>
<li onclick = "f('sub_menu_1')">⼀级菜单1
<ul id="sub_menu_1">
<li>⼆级餐单1</li>
<li>⼆级餐单1</li>
<li>⼆级餐单1</li>
<li>⼆级餐单1</li>
</ul>
</li>
<li onclick="f('sub_menu_2')">⼀级菜单2
<ul id="sub_menu_2">
<li>⼆级菜单2</li>
<li>⼆级菜单2</li>
<li>⼆级菜单2</li>
<li>⼆级菜单2</li>
</ul>
</li>
<li>⼀级餐单3</li>
</ul>
<script type="text/javascript">
function f(str){
jquery插件分享
var sub_menu = ElementById(str);
var dis_v = sub_menu.style.display;
if(dis_v == "block")
sub_menu.style.display = "none";
else
sub_menu.style.display = "block";
}
</script>
</body>
</html>
有个注意事项就是⼀级菜单的li不能添加a标签,不然会不起作⽤。
如果,你的页⾯默认进来⼆级菜单是展现的,点击时才关闭。直接把style标签的样式display="none"去掉就可以。同时需要修改⼀下js。
<script type="text/javascript">
function f(str){
var sub_menu = ElementById(str);
var dis_v = sub_menu.style.display;
if(dis_v == "none")
sub_menu.style.display = "block";
else
sub_menu.style.display = "none";
}
</script>
仔细看,不然你就会发现你需要点击两次才会出现想要的效果。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。