5

我使用了来自jsfiddle 68RXP collapse-group的示例来创建一个可扩展的 div:

HTML:

<div class="span4 collapse-group">
     <h2>Heading</h2>
     <p class="collapse">Lorem ipsum</p>
     <p><a class="btn" href="#">View details &raquo;</a></p>
</div>

Javascript:

$('.row .btn').on('click', function(e) {
    e.preventDefault();
    var $this = $(this);
    var $collapse = $this.closest('.collapse-group').find('.collapse');
    $collapse.collapse('toggle');
});

btn按下时,类p在展开和折叠模式之间切换。

我尝试对递归可折叠 div 使用相同的概念:

<div class="collapse-group">
    <p><a class="btn" href="#">Open outer div &raquo;</a></p>
    <div class="collapse">
        <h2>Outer div title</h2>
        <p>Outer div text</p>
        <div class="collapse-group">
            <p><a class="btn" href="#">Open inner div &raquo;</a></p>
            <div class="collapse">
                <h2>Inner div title</h2>
                <p>Inner div text</p>
             </div>
         </div>
    </div>
</div>

与之前相同的 js 代码,请参见jsFiddle WdbUe

第一次打开外部可折叠 div 时,内部 div 也会打开。如何将每个expand按钮耦合到一个可折叠的 div?

4

1 回答 1

4

data-toggle="collapse" data-target="#some_id"为每个可折叠对象使用了一个不同的 id div

<div class="container">
    <div class="hero-unit">
        <h2>Bootstrap-jQuery collapse example</h2>
        <p>Based on <a href="http://jsfiddle.net/Sherbrow/68RXP/">fiddle 68RXP</a></p>  
        <div class="collapse-group">
            <p><a class="btn" data-toggle="collapse" data-target="#demoout">Open outer div &raquo;</a></p>
            <div class="collapse in" id="demoout">
                <h1>Outer div title</h1>
                <p>Outer div text</p>

                <div class="collapse-group">
                    <p><a class="btn" data-toggle="collapse" data-target="#demoin">Open inner div &raquo;</a></p>
                    <div class="collapse in"  id="demoin">
                        <h2>Inner div title</h2>
                        <p>Inner div text</p>

                     <div class="collapse-group">
                    <p><a class="btn" data-toggle="collapse" data-target="#demoinin">Open inner div &raquo;</a></p>
                    <div class="collapse in"  id="demoinin">
                        <h3>Inner-inner div title</h3>
                        <p>Inner-inner div text</p>
                    </div>
                    </div>    
                    </div>
                 </div>
            </div>
        </div>
    </div>
</div>

使用此js代码:

$(document).ready(function(){
          $(".collapse").collapse();
});

工作示例:jsfiddle K63P3

信用:aximay@jsbin

于 2013-03-21T11:12:25.327 回答