Это довольно распространенный шаблон, в котором есть диалог, меню или какой-либо другой элемент HTML со ссылкой, внутри которой появляется ссылка в ответ на щелчок. Например, если вы нажмете оранжевый вопросительный знак над полем «Переполнение стека», он добавит кучу ссылок для «Ссылки», «Изображения» и т. Д. Затем, когда вы снова нажмете вопросительный знак, меню исчезнет.Можно ли щелкнуть левой кнопкой мыши контекстное меню браузера правой кнопки мыши?
У меня такая же настройка, только я хочу, чтобы меню уходило, когда пользователь щелкает куда угодно, кроме меню. Это не сложно ($ (document.body) .click (handleClickEsewhere)). Однако то, что трудно является следующий случай:
- Пользователь нажимает на вызова меню
- Пользователь щелкает правой кнопкой мыши на одной из ссылок в меню (создание контекстного меню браузера появится)
- пользователем левые щелчки в контекстном меню браузера, на «открыть в новой вкладке» пункт меню
- пользователь берется на ссылку в новой вкладке, НО
- меню остается открытым обратно на исходную страницу
Трудная часть вышеизложенного заключается в том, что я хотел бы вместо этого закрыть меню в этом случае; это выглядит немного глупо, когда пользователь возвращается к исходной вкладке, и меню все еще открыто. К сожалению, нет никакого способа обнаружить, что пользователь нажал «Открыть на новой вкладке», и, таким образом, я не могу закрыть это меню в ответ. Я могу закрыть меню в ответ на правый щелчок пользователя (шаг № 2 выше), но тогда они не смогут выбрать «Открыть на новой вкладке», потому что ссылка уйдет.
Я пробовал события jQuery click, mouseup, mousedown и contextmenu, но ни один из них, похоже, не поймал этот случай.
Неужели кто-нибудь еще придумал решение? Или, если это невозможно, может ли кто-нибудь более осведомленный, чем я, окончательно объяснить почему? Я предполагаю, что браузер просто не говорит вам о щелчке на шаге 4, но у меня нет реальной основы для этого предположения.
Это отличная идея, но этот подход имеет одну небольшую проблему: в моем браузере, по крайней мере, когда вы выбираете «Открыть на новой вкладке» «он не сразу переключается на эту вкладку. Таким образом, в то время как меню будет уходить, как только пользователь будет нажимать на новую вкладку, до тех пор, пока она не застрянет. Если это лучший результат, это нормально, но если есть способ избежать этого, было бы здорово. – machineghost
Ближайшим из них может стать обнаружение события контекстного меню http://stackoverflow.com/a/4909687/575527, но не элемент, который был нажат. – Joseph
Вот чего я боялся; спасибо за фокус предложение хотя :) – machineghost