A: 

To count the number of selections you can use:

$("input[type='checkbox']:checked").length;

So..

$("input[type='checkbox']").click(function(){
  if ($("input[type='checkbox']:checked").length < 1)
    $("#menu").hide();
});
clownbaby
A: 
$("input[name='id[]']").focus(function(){
   if ($(this).is(':checked')){
     $("#menu").fadeIn();
    }else{
     $("#menu").fadeOut();
    }
});

This should do what you need,

EDIT:

Your selector doesn't seem alright though. You should make it more specific. for example:

if it starts with id[ you can do it in this way:

$("input[name^=id\\[]")

this will include all input fields their names starting with 'id[' and '\' this is for escaping this '['.

Hope it helps, Sinan.

Sinan Y.
+2  A: 

Hi,

When you check a checkbox, the focus or click event will be triggered. You can count the checked checkboxes with

$("input:checked").length;

If you use that number to hide your menu it should be possible:

$("input[name='id[]']").click(function(){
   if($("input:checked").length > 0) { //checked boxes?
      if($("#menu:visible").length == 0) { //menu not visible?
          $("#menu").fadeIn();
      }
   } else {
      $("#menu").fadeOut();
   }
});
Esk