我创建了一个jquery函数来隐藏或显示div中的内容,但每当我重新加载页面时,它就会变成隐藏的,任何解决方案,
$(document).ready(function(){
$('#myRadioGroup').change(function(){
var ress = $('#myRadioGroup input[name="cars"]:checked').val();
if (ress == 3) {
$('.desc').show();
$('.descc').hide();
}
else{
$('.desc').hide();
$('.descc').show();
}
});
});
html代码在这里
<div id="myRadioGroup">
<input type="radio" name="cars" checked="checked" value="2">
<input type="radio" name="cars" value="3">
</div>
<div id="Cars2" class="descc">
2 Cars Selected
</div>
<div id="Cars3" class="desc" style="display: none;">
hello
</div>
我认为LocalStorage
是最简单的解决方案之一。
我对您的JavaScript代码做了一些更改。
$(document).ready(function(){
function selectedDefaultValue() {
var localData = localStorage.getItem("selectedValue");
if(localData !== null) {
var radio = $('#myRadioGroup input[value="' + Number(localData) + '"]');
radio.prop('checked', true);
onChangeRadio();
}
}
function onChangeRadio() {
var ress = $('#myRadioGroup input[name="cars"]:checked').val();
if (ress == 3) {
$('.desc').show();
$('.descc').hide();
} else{
$('.desc').hide();
$('.descc').show();
}
localStorage.setItem("selectedValue", ress);
}
selectedDefaultValue();
$('#myRadioGroup').change(function(){
onChangeRadio();
});
});
此处的示例:https://codepen.io/yasgo/pen/KKgPyBo
刷新页面时,它会重置。为了避免这种情况,您需要持久化数据。有几种方法可以处理此问题:
- 本地存储
- Cookie
- URL查询参数
- API(存储在数据库或云服务中(
如果您正在处理敏感信息,使用API方法(在https://em>上(最符合您的利益。但假设这不是敏感信息,您可以使用前三种方法之一。由此,我觉得localStorage更容易。
Window.localStorage
此外,使用可读易懂的名称。总是假设有人正在浏览你的代码,他们不应该对此感到恼火。