单击href后禁用关闭下拉列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击href后禁用关闭下拉列表相关的知识,希望对你有一定的参考价值。

我想在页面加载后保持我的dropdown打开。例如,如果我点击item(href)dropdown,我想在重定向后保持dropdown打开。

我已经看到有一个名为stopPropagation的方法jquery,但似乎这对我不起作用

html

<div class="sidenav">
  <div class="item_sn">
    Groups
  </div> 
  <div class="item_list_body">
    <div class="link_sidenav">
      <a href="#" class="sub_item">
        group 1
      </a>
    </div>
    <div class="link_sidenav">
        <a href="#" class="sub_item">
          group 2
        </a>
    </div>
  </div>
  <div class="item_sn">
    Users
  </div> 
  <div class="item_list_body">
    <div class="link_sidenav">
      <a href="#" class="sub_item">
        user 1
      </a>
    </div>
    <div class="link_sidenav">
        <a href="#" class="sub_item">
          user 2
        </a>
    </div>
  </div>
</div>

JQuery的

<script>
  $(document).ready(function () {
    $('.item_list_body').hide();
    $('.item_sn').on('click', function (event) {
      var content = $(this).next('.item_list_body')
      content.slideToggle();
      $('.item_list_body').not(content).slideUp();
    });
  });
</script>

解决方案1(不工作):

$(document).on('click', '.sub_item', function (e) {
  $(this).parent('.link_sidenav').parent('.item_list_body').toggle();
});
答案

您可以使用sessionStorage存储菜单的状态,然后通过检查状态打开页面加载菜单,见下文


编辑

而不是使用菜单的状态,我们应该保存点击菜单的索引,如评论中所讨论的那样更新我的答案

 $(document).ready(function () {
    //sessionStorage.removeItem('opened');
    $('.item_list_body').hide();
    if (sessionStorage.getItem('opened') !== null) {
        $('.sidenav>div:eq(' + sessionStorage.getItem('opened') + ')').next('.item_list_body').show();
    }

    $('.item_sn').on('click', function (event) {
        var content = $(this).next('.item_list_body');
        var elem = $(this);

        content.slideDown(0, function () {
            sessionStorage.setItem('opened', elem.index());
        });
        $('.item_list_body').not(content).slideUp();
    });
});

希望能帮助到你

以上是关于单击href后禁用关闭下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

单击任意位置时如何关闭下拉列表

选择/打开新下拉列表时自动关闭下拉列表(React)

单击 Google Chrome 时的下拉列表问题

单击下拉列表时关闭下拉列表

仅当在下拉列表之外单击鼠标时才关闭引导下拉列表

单击时菜单不切换(关闭)