【问题标题】:LocalStorage noUiSlider values || Important! : (LocalStorage noUiSlider 值 ||重要的! : (
【发布时间】:2017-07-21 02:16:10
【问题描述】:

我想将 2 个变量(?)值存储到本地存储并在网站刷新时加载它们。

var slider = document.getElementById('slider');

noUiSlider.create(slider, {
	start: [60, 600],
	connect: true,
	range: {
		'min': 50,
		'max': 700
	}
});

var sliderValue = slider.noUiSlider.get();
var min = parseInt(sliderValue[0]); //Need to storage this value
var max = parseInt(sliderValue[1]); //Need to storage this value
console.log(Math.floor((Math.random() * (max-min)) + min));
#slider {
  width: 400px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/8.2.1/nouislider.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/8.2.1/nouislider.min.js"></script>



<div id="slider">

</div>

!重要!我的 js 知识有点少,所以如果你想解释什么,就像在和婴儿说话一样说话。确实。

【问题讨论】:

标签: javascript jquery html jquery-ui-slider


【解决方案1】:

这里有解决方案https://jsfiddle.net/ozfpr1cn/1/

var slider = document.getElementById('slider');

var start;
if(localStorage.getItem('noUISlider') == null){
	start = [60, 600];
}else{
	start = $.map(localStorage.getItem('noUISlider').split(","), function(value){
    return parseFloat(value, 10);
  });
}

noUiSlider.create(slider, {
	start: start,
	connect: true,
	range: {
		'min': 50,
		'max': 700
	}
});

var sliderValue = slider.noUiSlider.get();
slider.noUiSlider.on('change', function(){
	localStorage.setItem('noUISlider', slider.noUiSlider.get());
});
#slider {
  width: 400px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/8.2.1/nouislider.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/noUiSlider/8.2.1/nouislider.min.js"></script>

<div id="slider">

</div>

【讨论】:

  • 你简直就是神。谢谢!
【解决方案2】:

您可以使用 localStorage API 来设置和获取项目:

首先,如果你想在 localStorage 中存储项目,只需使用 set API:

localStorage.setItem('myValue', sliderValue[0]);

其中 myValue 是项目名称

其次,如果你想获取localStorage,只需使用get API:

localStorage.getItem('myValue');

【讨论】:

  • 项目名称,你是什么意思?它可以是任何东西或变量名吗?
  • 只是您选择的用于标识项目的名称。
  • 我尝试过类似codepen.io/Hatchling/pen/EXqeRN 的方法,但它不起作用。 ;/
  • 很好用,但是如果你想在同一个项目中存储多个值,建议使用类似的对象:var items = [];功能存储(item_id){item.push(item_id); localStorage.setItem("item", JSON.stringify(items)); }
  • 好吧,但即使我尝试只将 1 个值保存到 localStorage 中,它只是 sliderValue[0],它也不起作用。 ;/
猜你喜欢
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 2014-06-15
  • 1970-01-01
  • 2012-10-09
  • 2012-04-01
  • 1970-01-01
相关资源
最近更新 更多