2016-04-14 40 views
0

我有一個包含鏈接的頁腳,在移動視圖中,鏈接處於隱藏狀態。 enter image description here手風琴菜單中的切換狀態問題

當用戶單擊標題時,鏈接應向下切換,並且標題旁邊的圖標應從加號變爲減號圖標。如這裏看到的那樣,這不起作用。

enter image description here

當用戶再次點擊擴展頭部,一節崩潰和圖標應該返回到一個加號,但留在作爲一個減號。

HTML

<div class="row"> 
    <div class="col-lg-12"> 
    <div class="footer-links"> 
    <div class="row"> 
     <div class="panel-heading panel-columns panel"> 
     <h4 class="panel-title"> 
      <a class="accordion-toggle" data-toggle="collapse" data-target="#about" data-parent="#accordion"> 
      Header 
      </a> 
     </h4> 
     <ul class="visible-sm visible-md visible-lg collapse" id="about"> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
     </ul> 
     </div> 
     <div class="panel-heading panel-columns panel"> 
     <h4 class="panel-title"> 
      <a class="accordion-toggle" data-toggle="collapse" data-target="#why" data-parent="#accordion"> 
      Header 
      </a> 
     </h4> 
     <ul class="visible-sm visible-md visible-lg collapse" id="why"> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
     </ul> 
     </div> 
     <div class="panel-heading panel-columns panel"> 
     <h4 class="panel-title"> 
      <a class="accordion-toggle" data-toggle="collapse" data-target="#quicklinks" data-parent="#accordion"> 
      Header 
      </a> 
     </h4> 
     <ul class="visible-sm visible-md visible-lg collapse" id="quicklinks"> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
      <li><a href="">link</a></li> 
     </ul> 
     </div> 
     <div class="footer-offer-columns"> 
     <h4 class="deal-text"><strong>Ad text will</strong> go here</h4> 
     </div> 
     <div class="footer-share-columns"> 
     <div class="footer-share"> 
      <a href=""><img src="/img/facebook_icon.png"></a> 
      <a href=""><img src="/img/twitter_icon.png"></a> 
      <a href=""><img src="/img/linkedin_icon.png"></a> 
      <a href=""><img src="/img/youtube_icon.png"></a> 
      <a href=""><img src="/img/google_icon.png"></a> 
     </div> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 

jQuery的

$('.panel-heading').on('click', '.accordion-toggle', function(){ 
$(".accordion-toggle").each(function(){ 
    console.log($("this")); 
    $(this).removeClass('visibility-status'); 
    console.log('open'); 
}); 

$(this).toggleClass('visibility-status'); 
}); 

CSS

.accordion-toggle:after { 
    content: '+'; 
    font-family: 'Material Icons'; 
    font-size: 22px; 
} 
.accordion-toggle.visibility-status:after { 
    content: '-'; 
    font-family: 'Material Icons'; 
    font-size: 22px; 
} 
+1

可能總是拋棄jQuery,並重新調整像[此解決方案](http://stackoverflow.com/a/36555859/5116879)之類的東西來生成原生效果。否則,問題似乎是它並沒有實際應用'visibility-status'類。可能因爲你打算切換它,而不是首先將其刪除。 – abluejelly

+0

你能提供一個讓'visibility-status'類可以工作的例子嗎?你鏈接到的解決方案,在打開另一個能力時沒有崩潰其他部分。我已經構建的版本除了允許您將圖標切換回加號(如果再次單擊相同的標題)之外,其他所有內容都不會生效。 – user3438917

+0

很容易將我的示例轉換爲摺疊其他選擇。使用'radio's而不是'checkbox'en,並確保它們都共享一個唯一的,明顯垃圾的名字(比如'_acrd $ 0'或其他)。因此我爲什麼說「重新設計類似的東西」。如果你閱讀整個解決方案,我甚至在答案中註明了這一點。 – abluejelly

回答

1

給下面的代碼來代替你的jQu一試紅黴素。您目前沒有檢查當前正在點擊的標題是否可見。您刪除visibility-status類,然後切換它。這樣做,它會一直開啓,因爲您先移除它。

$('.panel-heading').on('click', '.accordion-toggle', function() { 
    //Store visible status of clicked header 
    var isVisible = $(this).hasClass('visibility-status'); 

    //Remove visibility from all headers 
    $('.accordion-toggle').removeClass('visibility-status'); 

    //Turn on the class if it was already off 
    if (!isVisible) { 
     $(this).addClass('visibility-status'); 
    } 
}); 
+1

我覺得你所要做的只是把它移到頂端,但我仍然認爲本地重構是一個更好的舉措。同樣不錯的工作是縮小'removeClass()'循環,但如果您已經刪除了該類,則不需要刪除該類。編輯建議傳入= P – abluejelly

+0

@abluejelly好抓!出於某種原因,它會自動拒絕您的編輯,但是我繼續前進並進行了更改。我並不反對重構,但我也認爲這也是一個非常簡單的jQuery。 – Tricky12

+0

所以這很好,除了現在當另一個頭被打開時它不關閉其他頭。所以它應該是:打開一個標題,然後打開另一個標題並關閉前一個標題。 – user3438917