Questo potrebbe essere più facile
var puts = $('.a');//get checkboxes
var cans = $('.field');//get content
puts.on('change', function() {//when checkbox changes
if (!puts.filter(':checked').length) {//if nothing's checked
cans.show();//show it all
} else {//if something's checked
cans.hide();//hide all
puts.filter(':checked').each(function() {//get checked
$('.'+this.id+':hidden').show();//show if hidden
});
}
});
ha fatto un violino: http://jsfiddle.net/filever10/f8vk2/
guasto
puts
sono le caselle di controllo
cans
sono i blocchi di contenuto
Quando una casella di controllo cambia, se non viene attualmente verificato nulla, mostra tutto. Se qualcosa viene controllato, nasconde tutti i blocchi di contenuto e mostra uno che ha una classe che corrisponde al id
di una casella a check. Mostra solo cose che sono nascoste, quindi non deve essere eseguito più volte su blocchi di contenuto che si applicano a più caselle a check.