2016-11-23 79 views
0

问题:隐藏手风琴改变

我有一个由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> 
+0

请提供您的标记 – ScanQR

+0

您可以添加您的HTML部分吗?以便我们对这个问题有更多的了解。 – Samir

+0

添加了HTML部分。 – m2itz

回答

0

所以,我为它找到一个解决方案。 我不知道为什么我以前的功能没有工作,但在睡觉后,我读了jQuery UI文档,发现我可以使用我的常规标签防火功能。

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

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

    } 
});