私のアプリでは、カスタム ポップアップを作成する必要があり、それらを閉じようとすると問題が発生します。ポップアップを開くには、ユーザーはメニュー項目を選択する際に「ENTER」を押す必要があります。そこからメニューがポップアップし、閉じるボタンにフォーカスが与えられ、「閉じる」または「送信」項目を選択して「ENTER」を押すと閉じられます。
ユーザーがポップアップを閉じようとすると、ポップアップは閉じますが、閉じる関数によってキーイベントが消費されないため、再び開くことになります。
現在、ドキュメント内にナビゲーションを可能にする onkeyup イベントのキー イベント関数があり、ポップアップ クローズ関数を onclick、onkeyup、および onkeypress に割り当てようとしましたが、どれを試しても、'ENTER' を押すと常に到達してしまいますポップアップが閉じた後のメイン キー イベント関数。
私の現在のクイック フィックスは、2 つの追加のブール値を使用することです。1 つはポップアップが閉じると true になり、もう 1 つはメイン キー イベント関数が最初のブール値が true になるのを確認した後に true になります (ウィンドウの後に 1 つのブール値だけが true になるため)。何らかの理由でイベントがメイン関数に到達することを許可していた)。
ポップアップを離れるときに同じメニュー項目を選択する必要があるため、メニュー項目の選択を解除し、その場所を保存してから、メニュー項目に戻るには、さらにグローバル変数が必要になります。
2つの余分なグローバル変数を浮かび上がらせたくないので、これを行うためのより良い方法があるかどうか、私はほとんど疑問に思っています...