2017-09-11 267 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

是 這個開始的財產以後 它的工作,如果我把每一個複選框,此命令 如果有什麼想法,也許是爲了它的小的代碼,可以更好 但由於很多...這幫助我 –