Search code examples
htmljquerytwitter-bootstrapbootstrap-4

Collapse other sections when one is expanded


I am working on Bootstrap 4 Collapse. Wanted to collapse other sections when one is expanded

So far I did is:

<p>
  <a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
    content 1
  </a>
  <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample2" aria-expanded="false" aria-controls="collapseExample2">
    Content 2
  </button>
</p>

<div class="collapse" id="collapseExample">
  <div class="card card-body">
    Content one here
  </div>
</div>
<div class="collapse" id="collapseExample2">
  <div class="card card-body">
    Content 2 here
  </div>
</div>

Live demo: Live Demo


Solution

  • Make use of data-parent attribute:

    <div class="container" id="myGroup">
        <p>
            <a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
                content 1
            </a>
            <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample2" aria-expanded="false" aria-controls="collapseExample2">
                Content 2
            </button>
        </p>
    
        <div class="collapse" id="collapseExample" data-parent="#myGroup">
            <div class="card card-body">
                Content 1 here 
            </div>
        </div>
        <div class="collapse" id="collapseExample2" data-parent="#myGroup">
            <div class="card card-body">
                Content 2 here 
            </div>
        </div>
    </div>
    

    I added the id to your container and also added the data-parent to your content sections, referencing this container through the id.