我有一些本地存储代码来保存是否选中复选框以隐藏或显示一组div中的div(如果选中则也可以隐藏以进行打印)。它运作良好。尝试将相同的代码迁移到localforage失败。 很可能是由于我自己缺乏了解!我希望有人可以指出正确的方向。
我的本地存储代码:
var checkboxValuesCommon=JSON.parse(localStorage.getItem("formValuesCommon"))||{},
$checkboxesCommon=$("input.printitCommon"),
$commonDrugCommon=$(".eachdrug.eachcommondrug");
function updateStorageCommon(){
$checkboxesCommon.each(function()
{
checkboxValuesCommon[this.id]=this.checked,this.checked?
$(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print"):$(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print")}),
localStorage.setItem("formValuesCommon",JSON.stringify(checkboxValuesCommon))}
$checkboxesCommon.on("change",function(){
this.checked?$(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print"):$(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print"),updateStorageCommon()}),
$.each(checkboxValuesCommon,function(e,r)
{$("#"+e).prop("checked",r)}),
$checkboxesCommon.each(function(){
$(this).is(":checked")?$(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print hidden"):$(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print hidden")
});
Localforage代码:
localforage.getItem('formValuesCommon').then(function(value) {
var checkboxValuesCommon = value;
var $checkboxesCommon = $("input.printitCommon"),
$commonDrugCommon = $(".eachdrug.eachcommondrug");
function updateStorageCommon() {
$checkboxesCommon.each(function() {
checkboxValuesCommon[this.id] = this.checked, this.checked ? $(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print") : $(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print")
}); localforage.setItem("formValuesCommon", true);
}
$checkboxesCommon.on("change", function() {
this.checked ? $(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print") : $(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print");
updateStorageCommon()
});
$.each(checkboxValuesCommon, function(e, r) {
$("#" + e).prop("checked", r)
});
$checkboxesCommon.each(function() {
this.checked ? $(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print hidden") : $(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print hidden")
});
});