【问题标题】:Use localStorage.setItem to keep same show/hide divs使用 localStorage.setItem 保持相同的显示/隐藏 div
【发布时间】:2016-09-24 12:49:11
【问题描述】:

我在我的主页中使用一个函数。一切正常,我只想知道当我单击链接并进入另一个页面时如何将所选语言保留在页面中。

例如 id="en" 是默认语言,但如果我想在我的主页中使用 id="fr",然后点击链接谁会在另一个页面中发送给我。我会回到 id="en"。所以要保持相同的语言,我该如何使用这个功能:

localStorage.setItem("language", selectedLanguage);
currentlanguage= localStorage.getItem("language"); 

这里是我用来切换语言的函数的jsfiddle:

https://jsfiddle.net/kodjoe/chvw181j/

$(document).ready(function() {
  $('.lan').hide();
  $('.en').show();
});

$('.button').click(function(event) {
  $('.lan').hide();
  var selectedLanguage = $(this).attr('id');
  var setActiveLanguage = "." + selectedLanguage;
  $(setActiveLanguage).show();

localStorage.setItem("language", selectedLanguage);
currentlanguage= localStorage.getItem("language"); 
});
.button {
  cursor: pointer;
  padding: 0px 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="button" id="en">EN</a>
<a class="button" id="fr">FR</a>
<a class="button" id="de">DE</a>


<div class="lan en">1</div>
<div class="lan fr">2</div>
<div class="lan de">3</div>
<div class="lan en">4</div>
<div class="lan fr">5</div>
<div class="lan de">6</div>

【问题讨论】:

  • 应该不难弄清楚...设置在事件处理程序中,开始页面加载。
  • @charlietfl 我真的不知道是不是这样,我需要在其他页面中使用它吗?
  • 用于设置是。但是你想在页面加载时get,这样你就知道你隐藏/显示了什么
  • 当我点击“运行代码sn-p”时出现消息错误?以及我需要将哪部分代码放在其他页面中?
  • @coolio83000 检查我的答案,这将帮助您设置 localStorage 项目。 stackoverflow.com/a/39676980/6608101

标签: javascript jquery html local-storage show-hide


【解决方案1】:

首先存储你的价值

$('.button').click(function(event) {
  $('.lan').hide();
  var selectedLanguage = $(this).attr('id');
  var setActiveLanguage = "." + selectedLanguage;
  $(setActiveLanguage).show();

localStorage.setItem("language", selectedLanguage); //storing under the key of language

});

然后在您的 .ready 函数中获取准备就绪的值

var langStored = localStorage.getItem("language");

如果没有存储任何值,它将返回null

所以当你得到langStored 和当你得到null 时,把条件放在那里

看看:codepen

【讨论】:

    【解决方案2】:

    设置/获取本地存储项。

    localStorage.setItem('selectedLang', $(this).attr('id'));
    
    localStorage.getItem('selectedLang');
    

    文档:HTML5 Web Storage

    示例代码

    $(document).ready(function() {
        $('.lan').hide();
        var classSel = localStorage.getItem('selectedLang') ? localStorage.getItem('selectedLang') :  'en';
        //Get the value from localStorage and show that class only
        $('.'+classSel).show();
    
        $('.button').click(function(event) {
            $('.lan').hide();
            $("." + $(this).attr('id')).show();
            //Set the localStorage value
            localStorage.setItem('selectedLang', $(this).attr('id'));
        });
    });
    

    【讨论】:

    • 好的,我需要在我的主页中添加您的代码,但我必须放入运行相同功能的其他页面?
    • 最好创建一个通用的 js 文件,如前所述,它将加载完整的 javascript 代码,如果 HTML 可用于按钮,则该文件将起作用,或者它将显示先前从 localstorage 中选择的值,你明白我的意思吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多