Хорошо, когда вы проверяете, открыто ли какое-либо подменю, вы должны просто закрыть их, поэтому оператор if if ( $(this).not(menu) )
и внутренний код должны быть удалены.
PS: с сайта jQuery, метод .not()
вернуть объект jQuery, а затем, если оператор неверен из-за того, что он всегда будет истинным ...
Что вам нужно сделать: проверить, открыт ли menu
, сохранить его в переменной и закрыть всеПодменю открыто, затем, если opened
ложно, откройте menu