首页 文章

localStorage onload显示我选择的div?

提问于
浏览
0

如何用localStorage show hide div,例如我选择IT,onload show div IT .

我的js代码

itlang = document.getElementById('LangIT');         
itlang.onclick = function(event) {
        localStorage.setItem('a_avlang', '1');
        $('.avlan').hide();
        $('.av-it').show();
}; 
if (a_avlang === '1') {
    localStorage.getItem('a_avlang', '1');
    $('.avlan').hide();
    $('.av-it').show();
} else {
    localStorage.setItem('a_avlang', '0');
    $('.av-it').hide();
  }
}

我的按钮html

<a class="avlangbuttons" href="#it" id="LangIT" target="_self">IT</a>
<a class="avlangbuttons" href="#en" id="LangEN" target="_self">EN</a>

我的div显示/隐藏html

<div class="avlan av-it" style="display:none;"> 
IT
</div>

<div class="avlan av-en"> 
EN
</div>

1 回答

  • 1

    你有一些无效的语法 .

    • localStorage.getItem('a_avlang', '1'); 无效,getItem上只有一个参数

    • 为什么在使用jQuery时使用getElementById和onclick?

    我的猜测是你的意思

    function toggleAV(lang) {
      $('.av-it').toggle(lang=="LangIT");
      $('.av-en').toggle(lang=="LangEN");
      localStorage.setItem('a_avlang', lang); // saves LangEN or LangIT
    }
    $(function() { // onload 
      $('.avlangbuttons').on("click", function(event) {
         event.preventDefault(); // stop the click
         toggleAV(this.id); 
      });
      toggleAV(localStorage.getItem('a_avlang') || "LangEN"); // if exists otherwise english
    });
    

    或者,使用数据属性而不是解析ID

相关问题