Data-parent attribute not working on bootstrap v4-alpha crash

I want to close the first folded item after I click on the second one, but it doesn't work.

<div class="row">
  <div class="col-md-12">
    <div id="advancedOptions">
      <p class="advanced-search-options ml-1">
        <a role="tab" data-toggle="collapse" data-parent="#advancedOptions" href="#advancedSearchOptions" aria-expanded="false" aria-controls="advancedSearchOptions">Advanced search options</a>
        or browse by
        <a role="tab" data-toggle="collapse" data-parent="#advancedOptions" href="#areaList" aria-expanded="false" aria-controls="areaList">area list</a>
      </p>

      <div class="collapse" id="advancedSearchOptions" aria-labelledby="advancedSearchOptions">
        Advanced Search Options
      </div>
      <div class="collapse" id="areaList" aria-labelledby="areaList">
        Area List
      </div>
    </div>
  </div>
</div>

      

JSFiddle: https://jsfiddle.net/Lppf5r2z/

+3


source to share


2 answers


Just add a click event to yours a[role="tab"]

where you just need to hide all open ones collapse

.

$('a[role="tab"]').on('click',function(){
    $('.collapse').collapse('hide');
});

      



UPDATED FIDDLE

0


source


Please follow this code.

Html

<div class="row">
  <div class="col-md-12">
    <div id="advancedOptions">
      <p class="advanced-search-options ml-1">
        <a role="tab" data-toggle="collapse" data-parent="#advancedOptions" href="#advancedSearchOptions" class="link-data" aria-expanded="true" aria-controls="areaList">Advanced search options</a>
        or browse by
        <a role="tab" data-toggle="collapse" data-parent="#advancedOptions" href="#areaList" class="link-data" aria-expanded="false" aria-controls="advancedSearchOptions">area list</a>
        <a role="tab" data-toggle="collapse" data-parent="#advancedOptions" href="#areaList1" class="link-data" aria-expanded="false" aria-controls="advancedSearchOptions">area list 1</a>
      </p>

      <div class="collapse div-custom" id="advancedSearchOptions" aria-labelledby="advancedSearchOptions">
        Advanced Search Options
      </div>
      <div class="collapse div-custom" id="areaList" aria-labelledby="areaList">
        Area List
      </div>
      <div class="collapse div-custom" id="areaList1" aria-labelledby="areaList">
        Area List 123
      </div>
    </div>
  </div>
</div>

      

JQuery

$(document).ready(function(){
        var hide_id = "";
        $(".link-data").click(function () {
            if(hide_id != null && hide_id != ''){
                $(hide_id).hide('slow');
            }
            hide_id = $(this).attr("href");
        });
    });

      



Or you can do it through this code.

$(".link-data").click(function () {
    $('.collapse').collapse('hide');
});

      

In this html code you just need to add class = "links-data"

<a role="tab" data-toggle="collapse" data-parent="#advancedOptions" href="#advancedSearchOptions" class="link-data" aria-expanded="true" aria-controls="areaList">Advanced search options</a>

      

The last option is better than the first.

+1


source







All Articles