微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

手风琴打开/关闭全节

如何解决手风琴打开/关闭全节

我有几个基本的手风琴容器。当我运行它时,它会展开一组手风琴(它应该这样做),但在我关闭打开的组之前,我无法去展开另一组手风琴。

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');
    }
  })
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。