2016-11-23 101 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); 

    } 
});