在jquery点击功能后保存当前状态

时间:2016-05-31 06:37:27

标签: javascript jquery html

我试图在点击另一个按钮后隐藏按钮,但是当页面刷新时,隐藏按钮会再次显示。我想保持隐藏,即使我刷新页面并仅在我点击显示按钮时显示它。 任何帮助将不胜感激。

HTML:

<button type="button" class="showhide">Show / Hide</button>
<button type="button" class="link">Link</button>

JS:

$('.showhide').click(function(){
 $('.link').hide();
});

3 个答案:

答案 0 :(得分:6)

您可以使用localStorage通过以下代码在客户端处理它。 或者您需要在服务器脚本中使用sessionStorage。

if(localStorage.getItem('isHide'))
  $('.link').hide();
$('.showhide').click(function(){
  $('.link').hide();
  localStorage.setItem('isHide',true);
});

答案 1 :(得分:5)

像@Kartikeya所说,使用localStorage。

单击按钮时设置它。在页面加载时,检查localStorage的值以更新按钮的可见性。

$('.showhide').click(function(){
    $('.link').toggle();

    var isVisible = $('.link').is(":visible"); 
    localStorage.setItem('visible', isVisible);
});

// stored in localStorage as string, `toggle` needs boolean
var isVisible = localStorage.getItem('visible') === 'false' ? false : true;
$('.link').toggle(isVisible);

https://jsfiddle.net/undm500w/8/

答案 2 :(得分:2)

如果您希望按钮在关闭浏览器后保持隐藏状态,您应该考虑使用localStorage,更多信息here,否则我建议使用sessionStorage类似于会话,这意味着当您关闭浏览器时,将删除存储在会话存储上的所有内容。您可以阅读有关会话存储here

的信息

基本上你需要使用两个功能。 getItemsetItem。这是使用sessionStorage的演示,但也适用于localStorage

   $(document).ready(function(){
       if(sessionStorage.getItem('isBtnHidden')){
           $('.link').hide();
       }

       $('.link').click(function(){
          $('.link').hide();
          sessionStorage.setItem('isBtnHidden', true);
       });
   });