P粉2121146612023-08-24 12:19:34
document
で click イベントをリッスンし、次を使用して #menucontainer
がクリックされた要素の祖先またはターゲットではないことを確認できます。 .closest()
。
そうでない場合、クリックされた要素は #menucontainer
の外側にあるため、安全に非表示にすることができます。
メニューを閉じてイベントのリッスンを停止する場合は、イベント リスナーの後でクリーンアップすることもできます。この関数は新しく作成されたリスナーのみをクリーンアップし、他のクリック リスナーは document
に残します。 ES2015 構文を使用します:
jQueryを使いたくない人向け。これは上記のプレーンな vanillaJS (ECMAScript6) コードです。
リーリー ######知らせ:### これは Alex のコメントに基づいています。jQuery 部分の代わりに!element.contains(event.target) を使用するだけです。
ただし、
element.closest()
Element.closest()
編集 – 2020-05-21
outsideClickListener
:リーリー
P粉3331862852023-08-24 10:52:59
閉じたウィンドウのドキュメント本文にクリック イベントを添付します。別のクリック イベントをコンテナにアタッチして、ドキュメント本文への伝播を停止します。
リーリー