【问题标题】:How to keep the current Accordion active on page refresh in Bootstrap如何在 Bootstrap 的页面刷新时保持当前 Accordion 处于活动状态
【发布时间】:2022-01-19 20:20:34
【问题描述】:

我有以下手风琴代码。代码工作正常。我想在页面刷新时保持选定的选项卡处于活动状态。但是我添加的 javascript 不起作用。我不知道确切的问题是什么。

<div class="accordion" id="accordionExample">
  <div class="card">
    <div class="card-header" id="headingOne">
      <h2 class="mb-0">
        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
          Collapsible Group Item #1
        </button>
      </h2>
    </div>

    <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
      <div class="card-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingTwo">
      <h2 class="mb-0">
        <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
          Collapsible Group Item #2
        </button>
      </h2>
    </div>
    <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
      <div class="card-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingThree">
      <h2 class="mb-0">
        <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
          Collapsible Group Item #3
        </button>
      </h2>
    </div>
    <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
      <div class="card-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
</div>

Javascript

<script type="text/javascript">
$(document).ready(function(){
    $('button[data-toggle="collapse"]').on('shown.bs.collapse', function(e) {
        localStorage.setItem('activeTab', $(e.target).attr('data-target'));
    });
    var activeTab = localStorage.getItem('activeTab');
    if(activeTab){
        $('#accordionExample button[data-target="' + activeTab + '"]').collapse('show');
    }
});
</script>

【问题讨论】:

    标签: javascript html bootstrap-4 accordion


    【解决方案1】:

    首先,您将 id(您要显示的 div)添加到会话中。 然后在重新加载后你就得到了会话。并通过js显示当前的div。这是我的代码。

    $(document).ready(function() {
      // Get saved data from sessionStorage
      let selectedCollapse = sessionStorage.getItem('selectedCollapse');
      if(selectedCollapse != null) {
        $('.accordion .collapse').removeClass('show');
        $(selectedCollapse).addClass('show');
      }
      //To set, which one will be opened
      $('.accordion .btn-link').on('click', function(){ 
        let target = $(this).data('target');
        //Save data to sessionStorage
        sessionStorage.setItem('selectedCollapse', target);
      });
    });
    

    请注意,我看到了您的代码。我认为您使用了引导程序和 jquery。您必须至少需要 jquery 才能执行 avobe 操作。

    我不知道这是否正确。但它会以某种方式起作用。

    【讨论】:

    • 其实谢谢你。我以前没有那样做。对于您的问题,我学会了如何使用它。 :) 。顺便说一句,欢迎你。这是jsfiddle。 jsfiddle.net/hasanali05/s6w7uezn/3
    【解决方案2】:

    这是一个非常简单的方法:

    $("#").load(location.href + " #");
    

    始终在第二个# 符号之前留出空格,否则上面的代码将返回整个页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-25
      • 2017-11-07
      • 2012-05-18
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2013-09-07
      相关资源
      最近更新 更多