【问题标题】:Jquery - Hide / Show - "Session" problemJquery - 隐藏/显示 - “会话”问题
【发布时间】:2009-11-01 09:33:32
【问题描述】:

我在我的网站上使用此链接和 div:

<p><a href="#" class="navlink" id="navlink_1">Menu1</a> | <a href="#" class="navlink" id="navlink_2">Menu2 |</a><a href="#" class="navlink" id="navlink_5"> Menu 3|</a></p>

<div id="menu_1" class="mymenu">
</div>
<div id="menu_2" class="mymenu">
</div>
<div id="menu_3" class="mymenu">
</div>

这个 jquery 隐藏和显示菜单。

$('div[class*="mymenu"]').hide(); 
 var current;
       var showMenu = function(e) {
    // read the id out of the clicked elements id ('navlink_ID')
        var id = e.id.split('_');
        $('div#menu_' + id[1]).show();
    // store this element as new current visible
        current = e;
      }

      // hide all menu elements
      $('div.mymenu').hide();
      $('a.navlink').click(function() {
        if (this != current) {
          // check if an element is visible -> hide it and show new menu
          if (current) {
            var id = current.id.split('_');
            $('div#menu_' + id[1]).hide(200,showMenu(this));
          } else {
            showMenu(this);

          }
        }
        return false;
      }); 

如何修改此代码,如果我重新加载页面,那么最后一个可见的 DIV 将保持可见。 (我不想为此使用查询字符串。我尝试使用 jquery 会话但不起作用..)

感谢您的帮助...

【问题讨论】:

    标签: php jquery html


    【解决方案1】:

    Cookie 是保存可折叠 div 的理想方式,ShopDev 有一个很好的教程,教您如何使用 jQuery cookie 插件实现与您尝试做的相同的事情。

    基本上,您在 cookie 中为您想要保留的每个 div 设置一个值,并且每当事件发生时,您都会更新 cookie 中的值,例如:

    $.cookie('menu_1', 'expanded');
    

    您还需要检查页面首次加载时每个div的状态,例如

    var menu_1 = $.cookie('menu_1');
    
    if (menu_1 == 'collapsed') {
        $('#menu_1').css("display","none");
    };
    

    【讨论】:

      【解决方案2】:

      最简单的纯 JavaScript 方式:设置 cookie。

      【讨论】:

        猜你喜欢
        • 2017-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        相关资源
        最近更新 更多