2013-02-22 51 views
2

我有一堆不同的部分有自己的折叠元素。我已经实现了jQuery来扩展和折叠它们。Bootstrap崩溃力全部展开

的jQuery:

$('.collapse').each(function (index) { 
    $(this).collapse("toggle"); 
}); 

HTML摘录:

<ul class="nav nav-tabs"> 
    <li class="active" id="General"><a href="#">General</a></li> 
</ul> 
<div class="tab-content"> 
    <div class="tab-pane active">                                            
     <div class="accordion" id="accordion2">             
      <div class="accordion-group"> 
       <div class="accordion-heading"> 
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#generalQuestions" href="#collapseFour">Q. Can I choose my own Username and Password?</a> 
       </div> 
       <div id="collapseFour" class="accordion-body collapse"> 
        <div class="accordion-inner">A. Yes, you can choose your own Username and Password. We suggest using your email address for your Username, but any username that is between 8 and 20 characters long could be used. A secure Password should be 8 to 20 characters long, with no spaces, and contains at least one special character. </div> 
       </div> 
      </div> 
      <div class="accordion-group"> 
       <div class="accordion-heading"> 
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#generalQuestions" href="#collapseFive">Q. Can I update by email address online?</a> 
       </div> 
       <div id="collapseFive" class="accordion-body collapse"> 
        <div class="accordion-inner">A. Yes, but I have no idea how right now. </div> 
       </div> 
      </div> 
     </div> 
    <a href="#top" class="btn btn-mini top"><i class="icon-arrow-up"></i> Back To Top</a> 
</div> 

http://jsfiddle.net/RmK2h/

有我有几个不同的问题。

  1. 在Internet Explorer中,该功能仅适用于第二次点击,并且非常容易跳转。随着它在第二次点击工作,按钮文本是不正确的。
  2. 如果我打开其中一个元素,然后单击展开按钮,除最初打开的元素之外的所有元素都展开,它会折叠。实质上,.collapse("toggle")功能只是简单地将模式更改为打开或关闭,而不涉及其已经处于的状态。

回答

2

看起来像IE问题是Bootstrap的问题。从谷歌搜索了一下,看起来collapse功能在某种形式或其他形式的其他版本中突破。所以,除非你使用collapse函数以外的东西,否则我不确定你能否解决这个问题。我有点定在IE(展开/折叠按钮没有得到同步的了),并固定你的这段代码第二个问题:

$('.expandcollapse').click(function() { 
    if ($(this).html() == "<i class=\"icon-white icon-plus-sign\"></i> Expand All") { 
     $('.collapse:not(.in)').each(function (index) { 
      $(this).collapse("toggle"); 
     }); 
     $(this).html("<i class=\"icon-white icon-minus-sign\"></i> Collapse All"); 
    } 
    else { 
     $('.collapse.in').each(function (index) { 
      $(this).collapse("toggle"); 
     }); 
     $(this).html("<i class=\"icon-white icon-plus-sign\"></i> Expand All"); 
    }; 
}); 

Fiddle

0

Samsquanch's solution工作正常,但在我一段时间后,我仍然能够获得collapse不同步。

原因是数据属性data-parent="#selector"与想要的"expand all"行为有冲突。自举文件指出:

要手风琴状组管理添加到一个可折叠的控制,添加 数据属性data-parent="#selector"

因此,当需要"expand all"功能时,最好在展开前将该数据属性保留或删除。