2017-09-11 299 views
-2

我有问题,这项工作和一切正常,但复选框不太好 如果我标记checkbox1后重新加载它的标记checkbox2checkbox1。我必须帮助找到这个工作。jQuery复选框隐藏并显示div

只保存复选框标记

$(function(){   
    $('#checkbox1') 
    .prop('checked', localStorage.input === 'true') 
    .on('change', function() { 
     localStorage.input = this.checked; 
     if (this.checked) { 
     $('.column_category').show(0); //checked 
     } else { 
     $('.column_category').hide(0); 
     } 
    }) 
    .trigger('change'); 
}); 

$(function(){   
    $('#checkbox2') 
    .prop('checked', localStorage.input === 'true') 
    .on('change', function() { 
     localStorage.input = this.checked; 
     if (this.checked) { 
     $('.column_sku').show(0); //checked 
     } else { 
     $('.column_sku').hide(0); 
     } 
    }) 
    .trigger('change'); 
}); 


<input type="checkbox" id="checkbox1"/><label for="cbxShowHide">Categories</label> 
<input type="checkbox" id="checkbox2"/><label for="cbxShowHide">SKU</label> 
<input type="checkbox" id="checkbox3"/><label for="cbxShowHide">UPC</label> 
+1

没有问题,但你并不需要一个0中显示或隐藏方法 – clearshot66

回答

0

在这里,你去了一个解决方案https://jsfiddle.net/441s41mt/1/

$('input[type="checkbox"]').each(function(){ 
 
    $(this).prop('checked', (localStorage.getItem($(this).attr('id')) === 'true') ? 'checked' : '') 
 
}); 
 

 
$('input[type="checkbox"]') 
 
    .on('change', function() { 
 
    localStorage.setItem($(this).attr('id'), this.checked); 
 
    if (this.checked) { 
 
     $('.' + $(this).data('target')).show(); 
 
    } else { 
 
     $('.' + $(this).data('target')).hide(); 
 
    } 
 
    }) 
 
    .trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" id="checkbox1" data-target="column_category"/><label for="cbxShowHide">Categories</label> 
 
<input type="checkbox" id="checkbox2" data-target="column_sku"/><label for="cbxShowHide">SKU</label> 
 
<input type="checkbox" id="checkbox3"/><label for="cbxShowHide">UPC</label>

的第一件事情,请参考jsfiddle作为localStorage将尼特工作的stackoverflow片段。

checkbox中使用data-target来引用类。

希望这会帮助你。

+0

喜 感谢这项工作完美 我改变类型类,因为此页面上有很多复选框的再次 感谢 –

0

我想这是因为你绑定checkbox1checkbox2localStorage相同input领域。也许这可以帮助:

$('#checkbox1') 
    .prop('checked', localStorage.check1State=== 'true') 
    .on('change', function() { 
    localStorage.check1State = this.checked; 
    if (this.checked) { 
     $('.column_category').show(0); //checked 
    } else { 
     $('.column_category').hide(0); 
    } 
    }) 
    .trigger('change'); 
}); 

和第二个复选框上类似的东西。

+0

是 这个开始的财产以后 它的工作,如果我把每一个复选框,此命令 如果有什么想法,也许是为了它的小的代码,可以更好 但由于很多...这帮助我 –