Это довольно распространенный шаблон, когда в ответ на щелчок всплывают диалоговое окно, меню или какой-либо другой элемент HTML со ссылкой внутри.Например, если вы щелкнете по оранжевому вопросительному знаку над полем редактирования Переполнение стека, он добавит связку ссылок «Ссылки», «Изображения» и т. Д. Затем, когда вы снова щелкнете по знаку вопроса, меню исчезнет.1001 *
У меня похожая настройка, только я хочу, чтобы меню исчезало, когда пользователь щелкает где-нибудь, кроме меню.Это не сложно ($ (document.body) .click (handleClickElsewhere)).Однако сложным является следующий случай:
- Пользователь нажимает, чтобы вызвать меню
- Пользователь щелкает правой кнопкой мыши по одной из ссылок в меню (делая браузерпоявляется контекстное меню)
- Пользователь щелкает левой кнопкой мыши в контекстном меню браузера, в пункте меню «Открыть в новой вкладке»
- Пользователь попадает по ссылке в новой вкладке, НО
- Меню остается открытым на исходной странице
Сложная часть вышесказанного заключается в том, что я хотел бы вместо этого закрыть меню в этом случае;это выглядит немного глупо, когда пользователь возвращается к своей исходной вкладке, а меню все еще открыто.К сожалению, кажется, нет никакого способа обнаружить, что пользователь нажал «Открыть в новой вкладке», и поэтому у меня нет возможности закрыть меню в ответ.Я могу закрыть меню в ответ на щелчок правой кнопкой мыши (шаг № 2 выше), но тогда он не сможет выбрать «Открыть в новой вкладке», потому что ссылка исчезнет.
I 'мы пробовали jQuery-события click, mouseup, mousedown и contextmenu, но ни один из них, похоже, не уловил этот случай.
Кто-нибудь еще нашел решение этой проблемы?Или, если это невозможно, может ли кто-нибудь более знающий, чем я, окончательно объяснить, почему?Я предполагаю, что браузер просто не сообщает вам о клике на шаге # 4, но у меня нет реальной основы для этого предположения.