Это может быть проще
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
});
}
});
Сделал скрипку: http://jsfiddle.net/filever10/f8vk2/
авария
puts
флажки
cans
это блоки контента
При изменении состояния флага, если в настоящее время ничего не проверяется, оно показывает все. Если что -то проверяется, оно скрывает все блоки контента и показывает любой, кто имеет класс, который соответствует id
установленного флажки. Он показывает только вещи, которые скрыты, поэтому он не должен запускаться несколько раз на блоках контента, которые применяются к нескольким флажонам.