Cela pourrait être plus 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
});
}
});
fait un violon: http://jsfiddle.net/filever10/f8vk2/
panne
puts
est les cases à cocher
cans
est les blocs de contenu
Lorsqu'un état à cocher change, si rien n'est actuellement coché, il affiche tout. Si quelque chose est vérifié, il masque tous les blocs de contenu et affiche ceux qui ont une classe qui correspond id
d'une case cochée. Il montre uniquement des choses cachées, il n'a donc pas à s'exécuter plusieurs fois sur des blocs de contenu qui s'appliquent à plusieurs cases cochées.