要素の外側でのクリックを検出するには?
私はいくつかのHTMLメニューを持っており、ユーザーがこれらのメニューの頭をクリックすると完全に表示されます。ユーザーがメニューの外側をクリックすると、これらの要素を隠したいと思います。
このようなことはjQueryで可能でしょうか?
$("#menuscontainer").clickOutsideThisElement(function() {
// Hide the menus
});
2356
3
ウィンドウを閉じるためのクリックイベントをドキュメントボディに取り付けます。ドキュメントボディへの伝搬を止めるために、コンテナに別のクリックイベントを付けます。
Eranさんの例と同じような動作をするアプリケーションがありますが、メニューを開くときにクリックイベントをボディにアタッチしています...。このような感じです。
jQuery の
one()
関数]1の詳細はこちらウィンドウのクリックイベントのターゲットを確認し(他の場所で捕捉されていない限り、ウィンドウに伝搬するはずです)、それがメニュー要素のどれでもないことを確認します。 もしそうでなければ、あなたはメニューの外にいることになります。
あるいは、クリックの位置を確認し、メニュー領域内に含まれているかどうかを確認します。