首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记得背页上的手风琴状态

记得背页上的手风琴状态
EN

Stack Overflow用户
提问于 2020-12-15 10:55:23
回答 2查看 376关注 0票数 0

我在一个存档页面上有多个手风琴,默认状态为折叠。每个手风琴都有链接,当我点击其中一个的时候,我会在他们自己的页面上登陆,当然,当我回去的时候,手风琴都会倒塌。相反,我想做的是回到存档页面,发现手风琴在打开时被点击。

这是HTML中手风琴的一个例子:

代码语言:javascript
复制
<div class="zn_accordion--shortcode acc--style2 panel-group ">
 <div class="acc-group ">
 <button data-toggle="collapse" data-target="#acc5fd8b3656f7b0" class="acc-tgg-button text-custom collapsed btn-link">Title
 </button>
  <div id="acc5fd8b3656f7b0" class="acc-panel-collapse collapse ">
   <div class="acc-content">
    <div class="sub-child-wrap p10-10 d-4 t-4 ts-6 m-all">
     <a href=“link” class="sub-child block"<h5>Title</h5></a>
    </div>
   <div class="clear"></div>
   </div><!-- /.acc-content -->
  </div>
 </div><!-- end /.acc-group -->
</div>
<div class="zn_accordion--shortcode acc--style2 panel-group ">
 <div class="acc-group ">
 <button data-toggle="collapse" data-target="#acc5fd8b3656f7b0" class="acc-tgg-button text-custom collapsed btn-link">Title
 </button>
  <div id="acc5fd8b3656f7b0" class="acc-panel-collapse collapse ">
   <div class="acc-content">
    <div class="sub-child-wrap p10-10 d-4 t-4 ts-6 m-all">
     <a href=“link” class="sub-child block"<h5>Title</h5></a>
    </div>
   <div class="clear"></div>
   </div><!-- /.acc-content -->
  </div>
 </div><!-- end /.acc-group -->
</div>
<div class="zn_accordion--shortcode acc--style2 panel-group ">
 <div class="acc-group ">
 <button data-toggle="collapse" data-target="#acc5fd8b3656f7b0" class="acc-tgg-button text-custom collapsed btn-link">Title
 </button>
  <div id="acc5fd8b3656f7b0" class="acc-panel-collapse collapse ">
   <div class="acc-content">
    <div class="sub-child-wrap p10-10 d-4 t-4 ts-6 m-all">
     <a href=“link” class="sub-child block"<h5>Title</h5></a>
    </div>
   <div class="clear"></div>
   </div><!-- /.acc-content -->
  </div>
 </div><!-- end /.acc-group -->
</div>
<div class="zn_accordion--shortcode acc--style2 panel-group ">
<div class="acc-group ">
<button data-toggle="collapse" data-target="#acc5fd8b3656f7b0" class="acc-tgg-button text-custom collapsed btn-link">Title
</button>
<div id="acc5fd8b3656f7b0" class="acc-panel-collapse collapse ">
<div class="acc-content">
<div class="sub-child-wrap p10-10 d-4 t-4 ts-6 m-all">
<a href=“link” class="sub-child block"<h5>Title</h5></a></div><div class="clear"></div></div><!-- /.acc-content --></div> </div><!-- end /.acc-group --> </div>
<div class="zn_accordion--shortcode acc--style2 panel-group ">
 <div class="acc-group ">
  <button data-toggle="collapse" data-target="#acc5fd8882426e1e"
  class="acc-tgg-button text-custom btn-link" aria-expanded="true">Title
  </button>
  <div id="acc5fd8882426e1e" class="acc-panel-collapse collapse in" aria-expanded="true">
   <div class="acc-content">
     <div class="sub-child-wrap p10-10 d-4 t-4 ts-6 m-all">
      <a href="link" class="sub-child block"">
       <h5>Title</h5>
      </a>
     </div>
     <div class="clear"></div>
   </div><!-- /.acc-content -->
  </div>
 </div><!-- end /.acc-group -->
</div>

以及我的Jquery代码:

代码语言:javascript
复制
 $(".acc-tgg-button").click(function () {

 $(".acc-tgg-button[aria-expanded='true']").not(this).click();

我试着使用docCookies.js,但是我想不出如何使用它来让它记住像这样手风琴的最后一个状态。我试过这段代码,但我真的被困在这里了:

代码语言:javascript
复制
$(".acc-tgg-button").click(function () {
  $(".acc-tgg-button[aria-expanded='true']").not(this).click();
  docCookies.setItem('acc-tgg-button', 'true', '', '','', true);
});

有谁可以帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-18 11:07:35

以一种全新的方式得到了

代码语言:javascript
复制
jQuery(document).ready(function ($) {
    $(window).unload(function() {
        var accTggButtons = document.querySelectorAll(".acc-tgg-button"); 
            accTggButtons.forEach((element, i) => {  
                if (element.getAttribute('aria-expanded') === "true") {
                    window.sessionStorage.setItem(window.location.pathname, i); 
                }
            });
    });
    $(window).on('load', function (event) { 
        var id = JSON.parse(window.sessionStorage.getItem(window.location.pathname));
        if(id){
            $('.acc-tgg-button').eq(id).click();
        }
    });
});
票数 0
EN

Stack Overflow用户

发布于 2020-12-16 05:06:58

HTML -更改

代码语言:javascript
复制
<a href="link" class="sub-child block" onclick="setCookie('acc5fd8b3656f7b01')">
  <h5>Title</h5>
</a>

我在onclick函数调用上添加了一个锚标记。

Jquery更改将下面的函数添加到脚本标记中。

代码语言:javascript
复制
  function getCookie(name) {
    var value = "; " + document.cookie;
    var parts = value.split("; " + name + "=");
    if (parts.length == 2) return parts.pop().split(";").shift();
  }

  function check_last_accordion() {
    latest_accordion = getCookie('latest_accordion')
    if (latest_accordion != undefined || latest_accordion != '') {
      $("button.acc-tgg-button[data-target='#" + latest_accordion + "']").click()
    }
  }

  function setCookie(accordion_id) {
    document.cookie = "latest_accordion=" + accordion_id + "; path=/"
  }

  $(document).ready(function() {
    check_last_accordion()
  })

运行它,并告诉我是否有任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65304478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档