首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SessionStorage导航

SessionStorage导航
EN

Stack Overflow用户
提问于 2017-11-08 06:08:45
回答 1查看 673关注 0票数 0

但是我似乎无法将sessionStorage变量更改为新的位置,也找不出一种函数方法让用户重新刷新页面。

这就是我目前所拥有的。

代码语言:javascript
复制
$(function() {

sessionStorage.setItem('position', '.first');
var location = sessionStorage.getItem('position');

$('li', this).click(function() {
    cls = $(this).text();

    if('.' + cls != location) {

        $(location).slideToggle(400);
        $('.' + cls).delay(400).slideToggle(400);

            sessionStorage.setItem('position', '.' + cls)
            console.log(location)
    };
  });
});

https://jsfiddle.net/Unkn0wn96/ndj9sqpe/

代码以一种非常奇怪的方式工作,而不是它的预期方式,包括在I console.log(位置)时从不更改值。

我对此做了一些进一步的测试,发现了一种“更”的工作方式,那就是sessionStorage确实改变了一些东西,但它并不是很有用。

https://jsfiddle.net/Unkn0wn96/nkbtykkr/

但是,这些元素并没有像它们应该的那样进行切换,包括当我通过控制台登录sessionStorage.position时,它会返回NaN。另外,出于某种奇怪的原因,我不能将sessionStorage.position存储在变量中,它只是拒绝更改它的值。我不知道为什么会发生这样的事情。

EN

回答 1

Stack Overflow用户

发布于 2017-12-01 01:31:01

所以我终于能够用sessionStorage解决我的问题了,因为没有太多的帮助,我假设关于这个案例的信息是有限的,所以希望分享我的解决方案。所有人都认为它没有像预期的那样完全工作,它确实执行了它的主函数。

代码语言:javascript
复制
$(function() {

  $('button').on('click', function() {
  var msg = '.'+$(this).text();

    localStorage.setItem('color', 'blue') //Default (does not matter since the if statement does not register)

  if(msg != '.' + localStorage.color) { // DOES NOT REGISTER

    if(localStorage.length > 0) {
       localStorage.removeItem('color')
       console.log('localStorage.length : ' + localStorage.length)
    };

            localStorage.setItem('color', msg)
      console.log(localStorage.color)
      } else {
      console.log('cancelled')
      }
});
});

https://jsfiddle.net/mdqjoz69/4/

所以我最终能够实现的是让localStorage键改变你按下的按钮的值。

我没能做到的是,每当你存储已经存储的东西时,都可以检查存储的数据不执行。可能会有一种解决方法。但是,由于代码具有其主要用途,因此我将不对其进行讨论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47168256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档