最简单的纯js实现点击展开二级菜单功能

最简单的纯js实现点击展开二级菜单功能虽然,jQuery已经非常好用了,但是实际的开发项目中,还是有很多限制,比如项目组奇葩的要求,不能使用任何插件,当然,也是考虑插件占用资源,毕竟100+KB对与小型项目来说还是非常大的。我最近就遇到做个点击展开二级菜单的要求,当然只能用原生的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 οnclick="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){
                var sub_menu = document.getElementById(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 = document.getElementById(str);
                var dis_v = sub_menu.style.display;
                
                if(dis_v == "none")
                    sub_menu.style.display = "block";
                else
                    sub_menu.style.display = "none";
                    
            }
		
	</script>

仔细看,不然你就会发现你需要点击两次才会出现想要的效果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143816.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月11日 下午5:20
下一篇 2022年5月11日 下午5:20


相关推荐

  • MyEclipse10 安装SVN插件及SVN插件在MyEclipse10下使用方法

    MyEclipse10 安装SVN插件及SVN插件在MyEclipse10下使用方法在安装MyEclipse10的SVN插件之前,首先得搞清Subversion、Subclipse、Ankhsvn与tortoiseSvn之间的关系。Subversion是一个服务器,主要有VisualSvnSer、Subversion+Apache,其中VisualSvnSer包含了Subversion+Apache,配置很方便,主要是VisualStudio开发管理代码用,Subclips

    2022年7月21日
    14
  • 你是一个合格的孩子吗?

    你是一个合格的孩子吗?最近在优酷上看到两个视频感触很深,拿来和大家一起分享一下。第一个是《天堂的午餐》  视频虽然只有短短的六分钟,也许会改变你的一生,故事讲了一个儿子为辛苦了一辈子的母亲做了一顿丰盛的午餐,但这顿午餐却成了母亲的天堂的午餐,就在母亲到家准备进家门时突然晕倒了,及时送到医院后抢救无效去世,母亲没有吃上儿子给她做的饭就去世了,视频中母亲问:我多会能吃上一顿你给我做的饭呢?儿子回答说…

    2025年11月7日
    5
  • Hadoop官网使用教程

    Hadoop官网使用教程Hadoo 官网查看单节点安装步骤 1 登录 Hadoop 主页 http hadoop apache org 2 找到左侧的 Documentatio 点击下拉箭头找到我们现在正在使用的 Hadoop 版本 3 若泽大数据课程的 Hadoop 版本为 Release2 8 3 单击进入 4 点击左侧的 nbsp SingleNodeSe nbsp 5 找到了单节点的安装部署信息单节点部署 Hadoop 网站地址 http

    2026年3月18日
    1
  • rapidjson指针[通俗易懂]

    rapidjson指针[通俗易懂]博客搬家,原地址:https://langzi989.github.io/2017/05/27/rapidjson指针/本系列文章以例子的方式进行呈现。#include”rapidjson/document.h”#include”rapidjson/pointer.h”#include<iostream>usingnamespacerapidjson;/…

    2025年7月13日
    3
  • 详解卡尔曼滤波原理[通俗易懂]

    详解卡尔曼滤波原理[通俗易懂]详解卡尔曼滤波原理  在网上看了不少与卡尔曼滤波相关的博客、论文,要么是只谈理论、缺乏感性,或者有感性认识,缺乏理论推导。能兼顾二者的少之又少,直到我看到了国外的一篇博文,真的惊艳到我了,不得不佩服作者这种细致入微的精神,翻译过来跟大家分享一下,

    2022年6月15日
    39
  • PyTorch使用LMDB数据库加速文件读取[通俗易懂]

    PyTorch使用LMDB数据库加速文件读取[通俗易懂]PyTorch使用LMDB数据库加速文件读取文章目录PyTorch使用LMDB数据库加速文件读取背景介绍具体操作LMDB主要类`lmdb.Environment“lmdb.Transaction“Imdb.Cursor`操作流程创建图像数据集配合DataLoader参考链接原始文档:https://www.yuque.com/lart/ugkv9f/hbnym1对于数据库的了解较少,文…

    2026年4月18日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号