1

點擊時,我不知道什麼是錯的,因爲這是非常酷似引導網站引導塌陷斷裂上的元素

點擊後的第一個元素(列表A),它幾乎斷裂上。其他元素都可以,但是一旦列表A被點擊,它就會中斷。

<div class="accordion" id="notification_types"> 
    <div class="accordion-group"> 
     <div class="accordion-heading"> 
      <a class="accordion-toggle" data-parent="#notification_types" 
      data-toggle="collapse" href="#a">List A</a> 
     </div> 

     <div class="accordion-body collapse" id="a" style="height: 0px;"> 
     </div> 
    </div> 

    <div class="accordion-group"> 
     <div class="accordion-heading"> 
      <a class="accordion-toggle" data-parent="#notification_types" 
      data-toggle="collapse" href="#b">List B</a> 
     </div> 

     <div class="accordion-body collapse" id="b" style="height: 0px;"> 
      <div class="accordion-inner" dir="auto" id="a123"> 
       <a data-method="get" data-remote="true" href="/123">123</a> 
      </div> 
     </div> 
    </div> 

    <div class="accordion-group"> 
     <div class="accordion-heading"> 
      <a class="accordion-toggle" data-parent="#notification_types" 
      data-toggle="collapse" href="#c">List C</a> 
     </div> 

     <div class="accordion-body collapse" id="c" style="height: 0px;"> 
      <div class="accordion-inner" dir="auto" id="a456"> 
       <a data-method="get" data-remote="true" href="/456">456</a> 
      </div> 
     </div> 
    </div> 
</div> 

我做在的jsfiddle一個例子 - http://jsfiddle.net/uycBa/157/ 測試時,按清單B或C之前,因爲按下A將打破整個事情...

這裏有什麼問題?

回答

2

將div加到第一手風琴琴身上,無法找到原因。

<div class="accordion" id="notification_types"> 
    <div class="accordion-group"> 
     <div class="accordion-heading"> 
      <a class="accordion-toggle" data-parent="#notification_types" 
      data-toggle="collapse" href="#a">List A</a> 
     </div> 

     <div class="accordion-body collapse" id="a" style="height: 0px;"> 
      <div class="accordion-inner"> 
      </div> 
     </div> 
    </div> 

    <div class="accordion-group"> 
     <div class="accordion-heading"> 
      <a class="accordion-toggle" data-parent="#notification_types" 
      data-toggle="collapse" href="#b">List B</a> 
     </div> 

     <div class="accordion-body collapse" id="b" style="height: 0px;"> 
      <div class="accordion-inner" dir="auto" id="a123"> 
       <a data-method="get" data-remote="true" href="/123">123</a> 
      </div> 
     </div> 
    </div> 

    <div class="accordion-group"> 
     <div class="accordion-heading"> 
      <a class="accordion-toggle" data-parent="#notification_types" 
      data-toggle="collapse" href="#c">List C</a> 
     </div> 

     <div class="accordion-body collapse" id="c" style="height: 0px;"> 
      <div class="accordion-inner" dir="auto" id="a456"> 
       <a data-method="get" data-remote="true" href="/456">456</a> 
      </div> 
     </div> 
    </div> 
</div> 
+0

是的,這是訣竅。 Bootstrap必須具有統一的結構。 – isherwood 2013-02-24 19:35:01

+0

但這使得一個空格 – 2013-02-24 19:35:11

+0

也爲我工作,只是將一些文本添加到第一個手風琴,然後在展會上取代它。 – Bomberlt 2014-05-26 07:53:43

1

已知的錯誤:https://github.com/twitter/bootstrap/issues/5849


過渡阻止插件,因爲你的第一個可摺疊沒有高度:

該插件是在轉變狀態,並且正在等待過渡到結束,但由於元素的高度爲0,轉換從未開始,也不會結束(我認爲是這樣)。當它處於這種狀態時,插件不會執行任何操作。

你可以看到它,如果你停用過渡:

$('.accordion-body.empty').on('show', function(event) { 
    event.preventDefault(); 
}); 

empty也被添加在標記來:http://jsfiddle.net/Sherbrow/uycBa/158/


你可以通過在show事件調用preventDefault()停止這種定位空手風琴琴身)

演示:http://jsfiddle.net/Sherbrow/uycBa/159/

+0

這個解決方案有點問題,因爲列表是動態生成的。添加空類有點奇怪 – 2013-02-24 20:00:37

+0

@NickGinanto您可以使用自己的方式來查找它們,但我相信您可以測試生成的內容是否爲空,如'style =「height:0px」'。您也可以直接在事件處理程序中進行檢查,並根據您找到的內容防止事件發生。 – Sherbrow 2013-02-24 20:07:25