Обнаружить щелчок вне элемента?

Похожий наэтот вопрос, но сделать еще один шаг вперед. Я хотел бы обнаружить клики за пределами набора элементов, которые я обрабатываю следующим образом:

$('#menu div').live('click', function() {
    // Close other open menu items, if any.
    // Toggle the clicked menu item.

    $('body').one('click', function(event) {
        // Hide the menu item.
        event.stopPropagation();
    });
});

Это работает как талисман, к сожалению, когда другой элемент меню открыт и Нажатие второго, требуется два щелчка, чтобы открыть второй элемент. Первый нажатие скрывает первый элемент меню, который был открыт, второй показывает второе меню вещь.

& Quot; правильно & quot; Поведение работает следующим образом:

Clicking a menu item opens it. Clicking the same menu item (or it's children) closes it. Clicking another menu item closes the first, opens the second. Clicking away from (open) menu items closes them.

Я попробовал следующее вместо вышеупомянутого$('body').one() чтобы игнорировать нажатия на пункты меню с небольшим успехом:

// Captures click on menu items in spite of the not.
$('*').not('#menu *').one('click', function() { // Hide menu }
$('*:not(#menu)').one('click', function() { // Hide menu }

Как всегда, спасибо за любую помощь!

Ответы на вопрос(2)

Ваш ответ на вопрос