在jQuery中隐藏显示的类并显示单击的类
Hide Displayed Class and Show the Clicked One in jQuery
我有3个菜单按钮,每个按钮都有子菜单。默认情况下,子菜单是隐藏的。单击任意菜单时,将显示其下的子菜单。这是有效的,但如果我点击第二个或第三个按钮,它会显示其子菜单,第一个按钮的子菜单仍将显示。我希望在单击其他按钮时隐藏显示的任何按钮。
HTML代码:
<div class='mainMenu'>
<button class='menus'> aTone </button>
<div class='sub'>
<div class="container">
<div class="row">
<div class="col-md-3">
<button class='menus'> A1 </button>
<button class='menus'> B2 </button>
<button class='menus'> B3 </button>
</div>
</div>
</div>
</div>
<button class='menus'> bTone </button>
<div class='sub'>
<div class="container">
<div class="row">
<div class="col-md-3">
<button class='menus'> B1 </button>
<button class='menus'> B2 </button>
<button class='menus'> B3 </button>
</div>
</div>
</div>
</div>
<button class='menus'> ATone </button>
<div class='sub'>
<div class="container">
<div class="row">
<div class="col-md-3">
<button class='menus'> C1 </button>
<button class='menus'> C2 </button>
<button class='menus'> C3 </button>
</div>
</div>
</div>
</div>
</div>
jQuery代码:
$('.sub').hide();
$(document).on('click', '.menus', function(){
var $this = $(this);
$this.next('.sub').slideToggle(400);
});
提前谢谢。
因为您的子菜单位于.mainMenu
div中。将$(document)
替换为$('.mainMenu')
。因为您正在将事件委派给文档对象的子对象,所以事件会冒泡到文档级别。选择最近的父级$('.mainMenu')
更方便(并且父级必须存在于加载时的页面上(。试试这个:
$('.sub').hide();
$('.mainMenu').on('click', '.menus', function(){
$('.sub').hide(); // this will hide all submenu's
var $this = $(this);
$this.next('.sub').slideToggle(400); // this will show submenu next to clicked button
});
DEMO
$(document).on('click', '.menus', function(){
var $this = $(this);
$('.sub').hide();
$this.next('.sub').slideToggle(400);
});
相关文章:
- 检测页面上某个元素中选择(突出显示)或单击的内容
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 单击时显示,再次单击时隐藏
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 单击按钮时在灯箱中显示不同的内容
- OpenLayers在悬停时高亮显示功能,并在单击时选择
- 单击按钮时显示随机字符串
- 高亮显示单击菜单链接
- 显示单击的位置
- 如何在 *ngFor 列表中显示单击的元素,使用 Angular 2 隐藏其他元素
- 引导 - 折叠所有手风琴并显示单击
- 尝试使用PHP / Javascript构建一个可点击的索引,该索引显示单击的每个项目的数据
- 显示单击菜单项
- 使用typescript显示单击的链接中的网格
- 未显示单击时更改复选框状态
- 使用jQuery显示单击项目的标题值
- 如何突出显示单击的按钮,而不传递按钮的id
- 返回一个对象,显示单击了哪个元素
- 在jQuery中隐藏显示的类并显示单击的类