jQuery - 记住触发的函数

时间:2013-12-18 07:20:43

标签: javascript jquery html css

我有一个语言导航栏。 您可以使用jQuery按钮隐藏它。 但每次刷新页面时,导航栏都会再次出现。

点击“隐藏”按钮后,如何让它保持隐藏状态, 直到再次单击该按钮才能显示它。

我已经有了隐藏和显示的功能。

jQuery的:

            jQuery(document).ready(function(){
        jQuery('#hideshow').on('click', function(event) {        
             jQuery('#lang').toggle('show');
            debugger
            if($('#hideshow').text()=="Hide"){
                $('#hideshow').text("Show")
                }
        });
    });

Fiddle (小提琴看起来不太好,但有效)

顺便说一句,我是JS和jQuery的新手! :)

3 个答案:

答案 0 :(得分:1)

为了使条形图具有持久状态,您需要将此状态存储在cookie或本地存储中。你可以使用例如:

答案 1 :(得分:0)

只需使用cookie。

// if you want to set it for num of days, pass that in. 
// Otherwise leave empty and it will be a session cookie.
// and remember to pass in a number for days, not a string
function setCookie(name,value,days) {
   var date, expires;
   if (days) {
      date = new Date();
      date.setTime(date.getTime()+(days*24*60*60*1000));
      expires = "; expires=" + date.toGMTString();
        }else{
      expires = "";
   }
   document.cookie = name + "=" + value + expires + "; path=/";
}

如果您想阅读c​​ookie,请包含以下方法。

function getCookie(name) {
   var i, c, arr, cName = name + "=";
    arr = document.cookie.split(';');
    for(i=0;i < arr.length;i++) {
       c = arr[i];
          while (c.charAt(0)==' ') {
             c = c.substring(1,c.length);
          }
         if (c.indexOf(cName) == 0) {
            return c.substring(cName.length,c.length);
         }
    }
return '';
}

要获取和写入cookie,请执行以下操作:

setCookie('naviSet', true);

要阅读cookie'naviSet://,您可以将其命名为任何名称。

getCookie('naviSet')

然后在你的代码中,测试它是否已设置..如果没有,运行你的代码然后设置它。

if( getCookie('naviSet') != true){
   // run your code
   // set your coookie, to whatever value you want. I just happend to use "true"
}

答案 2 :(得分:0)

试试这个

使用COOKIE plugin

设置Cookie

$.cookie("div_status", "hide"); //set hide or show

获取Cookie

alert( $.cookie("div_status") ); //then call on page load to get div status

删除cookie

$.removeCookie("div_status"); //remove if not need