javascript - 单击 Jquery JS 时按钮重新打开
问题描述
我正在尝试以下操作:当用户单击按钮时,会打开一个值。如果另一个按钮已经打开,它将关闭。
结果如下:如果我打开一个,前一个是关闭的。
问题是如果我尝试关闭我打开的同一个按钮,它会重新打开它的内容。
有人能告诉我为什么会这样吗?
$(".btnCategory").click(function() {
var target = $(this).find('.infoSubCategory');
$('.infoSubCategory').not(target).slideUp();
target.slideToggle()
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<row class="col-xs-12" id="row1">
<div class="col-xs-6 btnCategory">
<button class="btn btn-default btn-block btnCategory">
<a class="">BUTTON 1</a>
</button>
<div class="infoSubCategory">
<li><a>Value 1</a></li>
</div>
</div>
</row>
<row class="col-xs-12" id="row2">
<div class="col-xs-6 btnCategory">
<button class="btn btn-default btn-block btnCategory">
<a class="">BUTTON 2</a>
</button>
<div class="infoSubCategory">
<li><a>Value 2</a></li>
</div>
</div>
</row>
解决方案
试试这个,它会导致错误,因为您btnCategory
对包装器和按钮使用相同的类名。
$(".btnCategory").click(function() {
var target = $(this).parent().find('.infoSubCategory');
$('.infoSubCategory').not(target).slideUp();
target.slideToggle()
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<row class="col-xs-12" id="row1">
<div class="col-xs-6">
<button class="btn btn-default btn-block btnCategory">
<a class="">BUTTON 1</a>
</button>
<div class="infoSubCategory">
<li><a>Value 1</a></li>
</div>
</div>
</row>
<row class="col-xs-12" id="row2">
<div class="col-xs-6">
<button class="btn btn-default btn-block btnCategory">
<a class="">BUTTON 2</a>
</button>
<div class="infoSubCategory">
<li><a>Value 2</a></li>
</div>
</div>
</row>
推荐阅读
- java - 使用 multipart 上传多个图像时出错
- java - 如何从 DSpace-CRIS 中的不同元数据中收集有关 CRIS 实体的数据?
- c - Libcurl:无法连接到 www.google.fr 连接被拒绝
- angular - 如何为 Angular SPA 实现缓存
- php - 我需要在另一个选项卡的 echo 语句中打开一个文件
- javascript - 请求谷歌图书 API 不正确
- javascript - 在 node.js 中导入 sequelize 模型的最佳方法
- java - 如何用int = 1随机填充10%的二维数组?
- azure - Microsoft Groups Graph API Multi-Geo:有没有办法使用应用程序权限(AAD 应用程序)在指定的地理位置创建组
- android - 如果我有图像的内容 uri,如何传递图像文件?