Php 如何在页面刷新时保持.current类

Php 如何在页面刷新时保持.current类,php,javascript,jquery,joomla,Php,Javascript,Jquery,Joomla,我有以下脚本将当前类添加到基于Joomla的网站中的: $(function(){ $("#slide-menu > li ").click(function(e){ e.preventDefault(); $("#slide-menu > li ").addClass("current").not(this).removeClass("current"); }); }); 但当我点击链接页面刷新和当前类消失 这是我的html: <ul id="sli

我有以下脚本将当前类添加到基于Joomla的网站中的
  • $(function(){
      $("#slide-menu > li ").click(function(e){
        e.preventDefault();
        $("#slide-menu > li ").addClass("current").not(this).removeClass("current");
      });
    });
    
    但当我点击链接页面刷新和当前类消失 这是我的html:

    <ul id="slide-menu" class="menu menu-sidebar">
      <li class="level1 item187">
        <a class="level1" href="/plastikovye-okna-i-dveri/other/plastikovye-okna-i-dveri">
         <span>Пластиковые окна</span>
        </a>
      </li>
      <li class="level1 item188">
        <a class="level1" href="/plastikovye-okna-i-dveri-2/uncategorised/okna-rehau">
         <span>Входные двери</span>
        </a>
      </li>
    </ul>
    

    页面刷新后,它将再次加载所有内容,因此您不能保留它,但您可以使用以下三种方法之一来实现此目的:

  • 向服务器发送ajax调用并将其保存在那里
  • 将值保存到cookies,并在加载脚本时检查cookie是否存在并从中加载值
  • 从请求的URL中匹配当前选定的元素

  • 祝你好运

    你可以用两种东西来储存这种东西。LocalStorage或在会话中,如果您想在客户端完全保留它,我应该使用LocalStorage

    本地存储

    使用localstorage可以保存currentClass。这会阻止您使用服务器端代码

    举个小例子:

    /* Set localStorage item */
    localStorage.setItem('name', 'value');
    
    /* Get localStorage item */
    localStorage.alpha;
    
    /* Or */
    localStorage['alpha'];
    
    在localStorge中使用is current保存类时,可以将其添加到document ready中

    会话存储

    另一种存储方式是在会话中。这将向您的服务器重新查询请求。最好是使用Ajax(我使用jquery库)

    举个小例子:

    /* Set localStorage item */
    localStorage.setItem('name', 'value');
    
    /* Get localStorage item */
    localStorage.alpha;
    
    /* Or */
    localStorage['alpha'];
    
    设置会话


    检查currentClass并完成您的技巧;)

    不要在单击时提供活动类,而是通过将href与菜单项答案匹配来提供。当然,当您单击链接时,会加载一个新页面,因此您不应该使用JavaScript管理它,除非您直接使用XMLHttpRequest加载页面内容。如果是另一个,你可以在你的页面模板中设置它。Rikesh非常感谢,它对我非常有效,你能写一个答案吗
    /*  Client side */
    function getSession($key) {
       $.ajax({
         type: "POST",
         url: "getSession.php",
         data: { key: "Foo" }
        }).done(function( callback ) {
          return callback ;
        });
    }
    
    /* Server side (PHP example) */
    <?php
      /* secure it your self. */
      echo $_SESSION[$_POST['key']];
    ?>
    
    var foo = getSession("foo");