javascript - 如何使用javascript再次关闭下拉菜单?
问题描述
再次单击打开下拉菜单后,如何关闭它?如果现在打开后点击它,它不会关闭。我找到了一些解决方案并尝试了,但我无法让它与我的代码一起使用。
$(document).ready(function () {
$(".accordion > a").on("click", function () {
if ($(this).hasClass('active')) {
$(this).removeClass("active");
$(this).addClass("active");
$('.accordion .content').slideUp(200);
$(this).siblings('.accordion .content').slideDown(200);
}
});
});
.col {
width: 33.3%;
float: left;
background: gray;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="accordion" data-id="231">
<a href="javascript:void(0);" class="grider clearfix active">
1.
</a>
<div class="content clearfix" style="display:none">
<div class="grider-2">
xxxx
</div>
</div>
</div>
<br><br>
<div class="accordion" data-id="232">
<a href="javascript:void(0);" class="grider clearfix active">
2.
</a>
<div class="content clearfix" style="display:none">
<div class="grider-2">
yyyy
</div>
</div>
</div>
解决方案
请试试这个:
$(document).ready(function () {
$(".accordion > a").on("click", function () {
if ($(this).hasClass('active')) {
$(this).removeClass("active");
$('.accordion .content').slideUp(200);
} else {
$(".accordion > a").removeClass("active");
$('.accordion .content').slideUp(200);
$(this).addClass("active");
$(this).siblings('.accordion .content').slideDown(200);
}
});
});
其他相同
推荐阅读
- oracle - oracle ords docker镜像的连接字符串无效
- swift - 在 SwiftUI 中,如何在 LinkedList 中“Foreach”节点?
- active-directory - adprep /rodcprep WS2008 和 WS2019
- elasticsearch - 为什么 Elasticsearch 中的 scaled_float 类型名称中有“float”?
- firebase - 将我的应用程序升级为空安全后,文档下的红线
- jestjs - 在 stencilJS 中使用 ref jest 单元测试用例在 componentDidLoad 上输入自动对焦错误
- batch-file - 为什么 MSG 命令在 IF 语句中不起作用?
- rcpp - 立方体中每个切片的操作
- c - 如何在不使用数组、指针或结构的情况下返回多个值?
- java - 如何使用杰克逊将未包装的 JSON 字段映射到包装的对象?