javascript - JQuery 一次显示一个菜单项

标签 javascript jquery css

我有一个包含两个菜单项的菜单,我想在用户单击菜单项时使用 JQuery 显示每个菜单项的子菜单。

两个子菜单都会显示(其中 class="dropdown-content")。如何修改我的代码以仅显示子菜单 在单击的菜单项下。有什么方法可以做到这一点而不必指定 id 吗?

下面是我的菜单:

    $('.menu-item').on('click', function() { 
    	$('.dropdown-content').toggle(); 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="nav-mobile">
            	<li class="menu-item">
			<img src="images/img1.png"/>
			<a class="hide-on-med-and-down white-text" href='#'><span id="lblLinks">Links</span></a>
                    	<ul id="linksdrop" class="dropdown-content">
                    		<li><a href="#">Link1</a></li>
                        	<li><a href="#">Link2</a></li>
               		</ul>
                </li>
               	<li class="menu-item">
			<img src="images/img2.png"/>
			<a class="hide-on-med-and-down white-text" href='#'><span>User</span></a>
                	<ul id="userdrop" class="dropdown-content">
                        	<li><a href="profile.html">My Profile</a></li>
                        	<li><a href="logout.html">Log Off</a></li>
                    	</ul>
            	</li>
            </ul>

最佳答案

你需要使用children()函数来切换特定DOM的 child

所以使用 $(this).children("ul").toggle(); 来完成你正在寻找的东西

$('.menu-item').on('click', function() { 
    	$(this).children("ul").toggle(); 
    });
.dropdown-content{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="nav-mobile">
            	<li class="menu-item">
			<img src="images/img1.png"/>
			<a class="hide-on-med-and-down white-text" href='#'>
       <span id="lblLinks">Links</span></a>
                    	<ul id="linksdrop" class="dropdown-content">
                    		<li><a href="#">Link1</a></li>
                        	<li><a href="#">Link2</a></li>
               		</ul>
                </li>
               	<li class="menu-item">
			<img src="images/img2.png"/>
			<a class="hide-on-med-and-down white-text" href='#'><span>User</span></a>
                	<ul id="userdrop" class="dropdown-content">
                        	<li><a href="profile.html">My Profile</a></li>
                        	<li><a href="logout.html">Log Off</a></li>
                    	</ul>
            	</li>
       </ul>

关于javascript - JQuery 一次显示一个菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47141040/

相关文章:

javascript - 页面加载后从 EpicEditor 中的文本区域同步值

javascript - 正则表达式 - 在 AngularJS 指令中包含空格

javascript - 如何使用 Ajax 使用第一个选择框值更新 jquery 中的第二个选择框?

html - 平板电脑的全高页面,无垂直滚动且适合一个屏幕的内容

html - 并排对齐图像和文本

html - 剪裁的 float 操作按钮 CSS

javascript - FileUploder 使用 jquery 获取文件完整路径

javascript - jQuery/HTML - 在使用等宽字体时,如何使空格 ( ) 占用与另一个字符相同的空间量?

java - 如何同时显示模式和执行操作

javascript - 如何根据下拉选项更改 keyup 值长度?