javascript - 手风琴打开/关闭所有部分
问题描述
我有几个基本的手风琴容器。当我运行它时,它将展开一组手风琴(它应该),但我不能去展开另一组手风琴,直到我关闭打开的组。
basicAccordianToggle = function(){
if ($('.expand-all-these').length) {
$('.expand-all-these').on('click', function(e){
e.preventDefault();
if ($('.expand-all-these').hasClass('collapsed')) {
$(this).parents('.basic-accordion-container').find('.collapse').collapse('hide');
$(this).parents('.basic-accordion-container').find('.expand-all-these').html('Expand All <span class="plus">+</span>');
$(this).parents('.basic-accordion-container').find('.expand-all-these').removeClass('collapsed');
}else{
$(this).parents('.basic-accordion-container').find('.collapse').collapse('show');
$(this).parents('.basic-accordion-container').find('.expand-all-these').html('Collapse All <span class="plus">-</span>');
$(this).parents('.basic-accordion-container').find('.expand-all-these').addClass('collapsed');
}
})
}
}
解决方案
您必须检查hasClass
单击的元素而不是所有元素,因此请使用this
引用单击的元素。
basicAccordianToggle = function(){
if ($('.expand-all-these').length) {
$('.expand-all-these').on('click', function(e){
e.preventDefault();
if ($(this).hasClass('collapsed')) {
// ---^^^^-------- here
$(this).parents('.basic-accordion-container').find('.collapse').collapse('hide');
$(this).parents('.basic-accordion-container').find('.expand-all-these').html('Expand All <span class="plus">+</span>');
$(this).parents('.basic-accordion-container').find('.expand-all-these').removeClass('collapsed');
}else{
$(this).parents('.basic-accordion-container').find('.collapse').collapse('show');
$(this).parents('.basic-accordion-container').find('.expand-all-these').html('Collapse All <span class="plus">-</span>');
$(this).parents('.basic-accordion-container').find('.expand-all-these').addClass('collapsed');
}
})
}
}
推荐阅读
- c++ - 如何正确实现 -> 和 (*)。使它们的行为类似于 -> 和 (*)。在迭代器中
- angular - AGGrid - RowGroupOpened - 如何区分打开和关闭组?(服务器端模型)
- linq - 当我们连接到 MySql 时,Any() 方法不起作用
- .net - .NET Console.WriteLine 方法 ToString 行为
- kubernetes - 如何根据 Pod 的“就绪”/“未就绪”状态让 Kubernetes 扩展我的部署?
- java - 无法在 JUnit 测试类中调用 Pageable 方法
- c# - Microsoft Excel 中的 OpenXML 用于注释
- mysql - SQL多表一条件不合适
- kotlin - RxJava - Kotlin:限制相同类型事件的流
- cmake - 如何使用单独的 -dev 头文件包为 cmake 创建 Yocto 配方?