jquery - JQuery Accordion,当你折叠一个手风琴时,它们都会折叠。我希望它只会折叠目标手风琴
问题描述
我有手风琴的 JQuery 代码,一切都很好,但是当你关闭一个手风琴时,所有的手风琴都关闭了吗?我想要它,所以如果他们单击关闭它,它只会关闭一个手风琴。建议?
jQuery(document).ready(function() {
jQuery('.uc_shadow_accordion .uc_trigger-{{uc_id}}:first').addClass('active').next().show();
jQuery('.uc_shadow_accordion .uc_trigger-{{uc_id}}').click(function() {
if (jQuery(this).next().is(':hidden')) {
jQuery(this).toggleClass('active').next().slideDown();
} else {
jQuery('.uc_shadow_accordion .uc_trigger-{{uc_id}}').removeClass('active').next().slideUp();
}
return false;
});
});
解决方案
更新你的else
部分。使用jQuery(this).removeClass('active').next().slideUp();
. 所以它只会关闭selected
元素。
jQuery('.uc_shadow_accordion .uc_trigger-{{uc_id}}')
将选择所有accordions
这就是它关闭所有的原因。
jQuery(document).ready(function() {
jQuery('.uc_shadow_accordion .uc_trigger-{{uc_id}}:first').addClass('active').next().show();
jQuery('.uc_shadow_accordion .uc_trigger-{{uc_id}}').click(function() {
if (jQuery(this).next().is(':hidden')) {
//jQuery(this).toggleClass('active').next().slideDown();
// You should use .addClass() instead of .toggleClass()
// because when you click and it is already hidden then you want to make it active.
// .toggleClass() will also work but it may cause conflicts.
jQuery(this).addClass('active').next().slideDown();
} else {
jQuery(this).removeClass('active').next().slideUp();
}
return false;
});
});
推荐阅读
- coq - 将具体假设应用于存在目标的 Coq 策略
- delphi - 我可以轻松地双击我的字符串网格并使用 VCL 应用程序获取单元格的内容。我怎样才能使用 FMX 做到这一点?
- ios - 未在自定义 UIButton 上设置图像
- javascript - 通过jquery将输入值设置为var
- javascript - 如何在链接点击时关闭汉堡菜单
- javascript - 如何在反应数据网格中从 api 值格式?
- python - 如何导入多个 dat 文件并操作每个文件的数据?
- angular - Angular如何在应用程序根目录之外显示内容
- javascript - 在 Javascript 中包含 NaN 时如何评估比较?
- android - AWS Cognito 身份池登录和持久性