页面刷新或重新加载时保持子菜单打开

mb

我在 mvc 中有一个项目,其中所有页面都有一个侧边栏,如下所示:

<ul class="nav nav-pills nav-stacked text-center" style="padding-right:2px;" >
  <li>
    <a href="#collapse1" id="btn-1" class="text-center" data-toggle="collapse"><span><b>A</b></span> </a>
    <ul class="nav nav-pills nav-stacked text-center collapse " id="collapse1" role="menu" aria-labelledby="btn-1" aria-expanded="false">
      <li><a href="~/A/A-a">A-a</a></li>
      <li><a href="~/A/A-b">A-b</a></li>
      <li><a href="~/A/A-c">A-c</a></li>
    </ul>
  </li>

  <li>
    <a href="#collapse2" class="text-center" data-toggle="collapse"><span><b>B</b></span></a>
    <ul id="collapse2" class="collapse nav nav-pills nav-stacked text-center collapse" aria-expanded="false">
      <li><a href="~/B/B-a">B-a</a></li>
      <li><a href="~/B/B-b">B-b</a></li>
    </ul>
  </li>
</ul>

当用户点击一个链接时:

<li><a href="~/B/B-b">B-b</a></li>

它的视图(页面)显示在侧边栏旁边,但问题是因为刷新或重新加载页面,通过单击标签,子菜单折叠,我需要保持打开状态。

我在网上搜索了很多,有人建议使用 html5 的本地存储,但所有示例都与导航选项卡相关。

路易斯·帕特里斯·贝塞特

下面是一个关于如何保存和恢复 Bootstrap 导航菜单“展开”状态的示例。
要保存的数据是aria-expanded每个ul.

CodePen查看

$(document).ready(function(){

  //localStorage.clear();   // Uncomment to clear ALL storage.

  // Timer needed because of Bootstrap's animation delay.
  var timer;

  $("ul").on("click",function(e){
    console.log("Click!");

    // Clear previous timer if any.
    clearTimeout(timer);
    timer = setTimeout(function(){

      // Get expanded states for each ul.
      var expanded=[];
      $("ul").each(function(){
        var thisExpanded = $(this).attr("aria-expanded");
        console.log(thisExpanded);

        if(typeof(thisExpanded) != "undefined"){
          expanded.push( thisExpanded );
        }else{
          expanded.push("undefined");
        }
      });

      // Show it in console.
      var expandedString = JSON.stringify(expanded);
      console.log( expandedString );

      // Save it in Storage.
      localStorage.setItem("ULexpanded",expandedString);
    },600);


  });

  // On load, set ul to previous state.
  console.log("---- On Load.");

  // Parse the string back to an array.
  var previousState = JSON.parse(localStorage.getItem("ULexpanded"));
  console.log(previousState);

  // If there is data in locaStorage.
  if(previousState != null){
    console.log("Setting ul states on...");

    $("ul").each(function(index){

      // If the ul was expanded.
      if(previousState[index] == "true"){
        console.log("Index #"+index);
        $(this).addClass("show").attr("aria-expanded", previousState[index]);
      }
    });
  }

});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在页面加载中保持子菜单打开?

来自分类Dev

在悬停 jquery 时保持子菜单打开

来自分类Dev

汉堡菜单打开页面加载

来自分类Dev

jQuery:将鼠标悬停在子菜单项上时保持子菜单打开

来自分类Dev

菜单打开时保持链接处于非活动状态

来自分类Dev

如何保持页面重新加载菜单状态

来自分类Dev

我如何保持弹出div始终打开,甚至在刷新/重新加载页面时,直到用户使用HTML5本地存储将其关闭

来自分类Dev

Javascript-悬停时的Bootstrap下拉菜单打开子菜单的所有菜单级别

来自分类Dev

折叠Bootstrap 3多层子菜单并在子菜单打开时更改活动状态

来自分类Dev

当子菜单打开而不关闭子菜单时修改 WPF 窗口

来自分类Dev

MDC菜单-当焦点在输入上时保持菜单打开

来自分类Dev

在网站的新页面上保持jQuery下拉菜单打开

来自分类Dev

鼠标离开顶部导航按钮后,如何保持mega子菜单打开?

来自分类Dev

javascript - 菜单在页面加载时打开

来自分类Dev

在页面重新加载时保持相同的表单

来自分类Dev

菜单打开时站点缩小

来自分类Dev

当菜单打开时使按钮消失

来自分类Dev

菜单打开时覆盖 BackButton

来自分类Dev

网站重新加载时出现子菜单

来自分类Dev

重新加载/刷新后使页面元素保持可见

来自分类Dev

在子菜单页面上时,mmenu打开子菜单分支

来自分类Dev

当关闭画布菜单打开时,是否禁用页面交互(例如,链接,输入)?

来自分类Dev

菜单打开时,导航栏位于页面内容下方

来自分类Dev

jQuery在子菜单打开时禁用背景,并在关闭后启用

来自分类Dev

单击子项目jQuery后保持菜单打开

来自分类Dev

如何在JComboBox中保持菜单打开?

来自分类Dev

Bootstrap 3保持菜单打开并显示div

来自分类Dev

菜单打开时自定义tkinter菜单

来自分类Dev

无法在页面刷新时重新加载相同状态

Related 相关文章

  1. 1

    如何在页面加载中保持子菜单打开?

  2. 2

    在悬停 jquery 时保持子菜单打开

  3. 3

    汉堡菜单打开页面加载

  4. 4

    jQuery:将鼠标悬停在子菜单项上时保持子菜单打开

  5. 5

    菜单打开时保持链接处于非活动状态

  6. 6

    如何保持页面重新加载菜单状态

  7. 7

    我如何保持弹出div始终打开,甚至在刷新/重新加载页面时,直到用户使用HTML5本地存储将其关闭

  8. 8

    Javascript-悬停时的Bootstrap下拉菜单打开子菜单的所有菜单级别

  9. 9

    折叠Bootstrap 3多层子菜单并在子菜单打开时更改活动状态

  10. 10

    当子菜单打开而不关闭子菜单时修改 WPF 窗口

  11. 11

    MDC菜单-当焦点在输入上时保持菜单打开

  12. 12

    在网站的新页面上保持jQuery下拉菜单打开

  13. 13

    鼠标离开顶部导航按钮后,如何保持mega子菜单打开?

  14. 14

    javascript - 菜单在页面加载时打开

  15. 15

    在页面重新加载时保持相同的表单

  16. 16

    菜单打开时站点缩小

  17. 17

    当菜单打开时使按钮消失

  18. 18

    菜单打开时覆盖 BackButton

  19. 19

    网站重新加载时出现子菜单

  20. 20

    重新加载/刷新后使页面元素保持可见

  21. 21

    在子菜单页面上时,mmenu打开子菜单分支

  22. 22

    当关闭画布菜单打开时,是否禁用页面交互(例如,链接,输入)?

  23. 23

    菜单打开时,导航栏位于页面内容下方

  24. 24

    jQuery在子菜单打开时禁用背景,并在关闭后启用

  25. 25

    单击子项目jQuery后保持菜单打开

  26. 26

    如何在JComboBox中保持菜单打开?

  27. 27

    Bootstrap 3保持菜单打开并显示div

  28. 28

    菜单打开时自定义tkinter菜单

  29. 29

    无法在页面刷新时重新加载相同状态

热门标签

归档