在选项卡更改时隐藏手风琴

Posted

技术标签:

【中文标题】在选项卡更改时隐藏手风琴【英文标题】:Hide accordion on tab change 【发布时间】:2017-04-07 11:15:15 【问题描述】:

问题:

我有由 jQuery 选项卡驱动的选项卡。在选项卡内有点击时展开的手风琴项。当我切换到不同的选项卡时,我想隐藏所有活动(打开)的手风琴 div。

管理手风琴行为的当前代码:

var all_spans = $('.accordion-item-text').hide();

$('.accordion-item h3').click(function(e)
    $('.accordion-item h3').removeClass('active');
    $(this).toggleClass('active');
    var thisSpan = $(this).parent().find('.accordion-item-text'),
        isShowing = thisSpan.is(":visible");

    all_spans.hide(500);
    if (!isShowing) 
        thisSpan.slideToggle();
    
    e.preventDefault();
);

应管理标签更改和隐藏所有打开的手风琴元素的当前代码:

所以,我认为一个简单的点击功能就可以做到这一点,但显然我错了。

$('.ui-tab').click(function() 
    $('.accordion-item h3').removeClass('active');
    $('.accordion-item-text').hide(500);
);

这不起作用,我必须先搜索那个确切的 div 吗?欢迎提出任何建议。

当前 HTML 部分:

<div class="product_content">
    <div id="tabs">

      <ul class="clearfix">
        <li><a href="#tabs-0">About</a></li>
        <li><a href="#tabs-1">General specifications</a></li>
      </ul>

      <div id="tabs-0" class="tabcontent"> 

          <div class="accordion_wrap">
            <div class="accordion-item">
              <h3>Accordion label</h3>
                <div class="accordion-item-text">accordion content</div>
            </div>
          </div>

          <div class="accordion_wrap">
            <div class="accordion-item">
              <h3>Accordion label</h3>
                <div class="accordion-item-text">accordion content</div>
            </div>
          </div>

      </div>

      <div id="tabs-1" class="tabcontent">                                
          <div class="accordion_wrap">
            <div class="accordion-item">
              <h3>Accordion label</h3>
                <div class="accordion-item-text">accordion content</div>
            </div>
          </div>
      </div>

    </div>
</div> 

【问题讨论】:

请提供您的标记 您能添加您的 html 部分吗?以便我们对这个问题有更多的了解。 【参考方案1】:

所以,我找到了解决方案。 我不知道为什么我以前的功能不起作用,但是在睡觉之后我阅读了 jQuery UI 文档并发现我可以使用我的常规选项卡触发功能。

$("#tabs").tabs(
    activate: function(event, ui) 

        $('.accordion-item h3').removeClass('active');
        $('.accordion-item-text').hide(500);

    
);

【讨论】:

以上是关于在选项卡更改时隐藏手风琴的主要内容,如果未能解决你的问题,请参考以下文章

响应选项卡是一个jQuery插件,提供响应选项卡功能。当它到达CSS断点时,选项卡会转换为手风琴。您可以使用此插件作为在桌面、平板电脑和手机上优雅显示选项卡的解决方案。

课堂笔记 layout 布局手风琴accordion选项卡tabs

在手风琴中折叠动态添加的选项卡

将 Bootstrap Accordion 设置为关闭并在单击时展开选项卡

Bootstrap手风琴Javascript在另一张卡关闭时打开一张卡

在 Knockout foreach 循环中引导 4 手风琴,在展开/折叠问题时更改图标