Таким образом, страница должна показывать div
, если установлен флажок, и спрятать его, когда он не установлен. Но я использую localstorage, поэтому он не должен скрываться при загрузке страницы, но только когда он не установлен. Если это возможно, оно должно использоваться для большого количества флажков (точно в точности).Показать галочку check on checkbox и скрыть ее при снятии флажка (даже при загрузке из-за localstorage)
Мой код:
HTML:
<div id="mob1-div" class="row hide one">Mobilisern1</div>
<div id="mob2-div" class="row hide-div">Mobilisern2</div>
<div id="mob1" class="targetDiv">Mobiliseren 1<input type="checkbox" class="checkbox chk" value="one" data-ptag="mob1-div" store="checkbox1"/></div>
<div id="mob2" class="targetDiv">Mobiliseren 2<input type="checkbox" class="checkbox" data-ptag="mob2-div" store="checkbox2"/></div>
Javascript:
$(function() {
var boxes = document.querySelectorAll("input[type='checkbox']");
for (var i = 0; i < boxes.length; i++) {
var box = boxes[i];
if (box.hasAttribute("store")) {
setupBox(box);
}
}
function setupBox(box) {
var storageId = box.getAttribute("store");
var oldVal = localStorage.getItem(storageId);
console.log(oldVal);
box.checked = oldVal === "true" ? true : false;
box.addEventListener("change", function() {
localStorage.setItem(storageId, this.checked);
});
}
});
$(function(){
$(".chk").on('change',function(){
var self=$(this);
var aData= self.attr("value");
$("."+aData).toggleClass('hide')
});
});
Проблема с этим кодом является то, что при установке флажка на div
шоу , но если вы перезагрузите страницы, окно все еще проверено. Хотя, div больше не виден.
'document.onload' с' if (thing.checked || localstorage.thing.checked) '. –