Нажатие на реагирующий модал иногда не закрывает модальный - PullRequest
0 голосов
/ 25 октября 2018

В настоящее время я использую реагирующий модал для реализации контекстного меню правой кнопкой мыши.Я делаю это, захватывая объект события из обработчика события и устанавливая модальное содержимое влево и верхний атрибут в event.clientX и event.clientY.У меня проблема в том, что иногда мне нужно дважды щелкнуть модальное наложение, чтобы закрыть контекстное меню, или сначала щелкнуть модальное содержимое, а затем щелкнуть наложение.Я могу закрыть модальный в любом случае.Однако я не знаю, почему я должен дважды щелкнуть, чтобы закрыть модал.

Я знаю, что это не проблема, чтобы реагировать на сам модал и, вероятно, связана с приложением, с которым я работаю, но мне интересно, что может вызватьЭта проблема?Я использовал отладчик Chrome для захвата события клика и установки прослушивателя кликов на объекте документа.Он обнаруживает событие щелчка, но первый щелчок по модальному наложению иногда игнорируется.Я также установил точку останова в функции-обработчике, где управлял модальным состоянием открытия / закрытия, но иногда он не вызывался при первом щелчке.Я установил очень высокое значение модального оверлейного z-индекса, например 9999, но он тоже не будет работать.

Может ли кто-нибудь дать мне руководство или какую процедуру я могу использовать, чтобы решить возникшую проблему?Извините, что не предоставил пример кода, потому что у меня нет этой проблемы, когда я вставляю тот же код в коде ручки.Я предполагаю, что это проблема в приложении, с которым я работаю

ОБНОВЛЕНИЕ : Когда я создаю контекстное меню, щелкая правой кнопкой мыши, также отображается контекстное меню браузера по умолчанию.В этом случае мне нужно дважды щелкнуть, чтобы сначала закрыть контекстное меню браузера, а затем снова щелкнуть, чтобы закрыть мое контекстное меню.Тем не менее, когда я вызываю event.preventDefault () , он останавливает отображение контекстного меню браузера, но мне все равно нужно дважды щелкнуть, чтобы закрыть контекстное меню.

Затем я меняю создатель слушателя контекстного меню на onClick (Первоначально я установил его на onContextMenu , потому что так я хочу, чтобы мое контекстное меню отображалось) итеперь он может успешно закрыть контекстное меню, нажав наложение только один раз.Возможно ли, что даже если я отключу контекстное меню браузера по умолчанию, щелчок правой кнопкой мыши все равно изменит текущий фокусирующий элемент?

...