但是我似乎无法将sessionStorage变量更改为新的位置,也找不出一种函数方法让用户重新刷新页面。
这就是我目前所拥有的。
$(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存储在变量中,它只是拒绝更改它的值。我不知道为什么会发生这样的事情。
发布于 2017-12-01 01:31:01
所以我终于能够用sessionStorage解决我的问题了,因为没有太多的帮助,我假设关于这个案例的信息是有限的,所以希望分享我的解决方案。所有人都认为它没有像预期的那样完全工作,它确实执行了它的主函数。
$(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键改变你按下的按钮的值。
我没能做到的是,每当你存储已经存储的东西时,都可以检查存储的数据不执行。可能会有一种解决方法。但是,由于代码具有其主要用途,因此我将不对其进行讨论。
https://stackoverflow.com/questions/47168256
复制相似问题