右クリックして表示されるコンテキストメニューを実装しようとしてcontextFolder
いますz-index: 1000
。
そのために、JQueryを使用してcontextmenuイベントをdivにバインドします。これは正常に機能しています。このコンテキストメニューを非表示にしたい
- ユーザーが画面上の任意の場所を左クリックすると、
- ユーザーは、他の場所を除いて、画面上の任意の場所を右クリックします
div.contextfFolder
コンテキストメニューが開いていて、他のコンテキストメニューで右クリックが発生した場合div.contextFolder
、現在のコンテキストメニューを非表示にして、新しいコンテキストメニューを開きdiv.contextFolder
ます。
コンテキストメニューに表示するときにそれを行うには、
- また、、、、およびで
height: 100%
オーバーレイを作成します。width: 100%
z-index: 100
- 左クリックイベントをこのオーバーレイにバインドして、クリックしたときに、
- オーバーレイが削除され、
- コンテキストメニューは非表示になっています。
- また、コンテキストメニューをバインドしてコンテキストメニューを非表示にし、右クリックして別のポイント以外のポイントに
overlay
移動すると削除しますoverlay
div.contextFolder
- コンテキストメニューのオーバーレイの左クリックイベントを防ぐために、コンテキストメニューにも割り当て
z-index: 101
ます。(オーバーレイのz-indexは100です)
これは私にはすべて問題ないようです(私はCSSの初心者なので、非常に明白な何かが欠けている可能性があります)。
div.contextFolder
別のコンテキストメニューがすでに開いているときに右クリックした場合を除いて、すべて正常に機能していdiv.contextFolder
ます。オーバーレイのコンテキストメニューイベントに移動します(現在のイベントに非表示になります)。新しいものを開けて欲しいです。
ChromeとFirefoxの最新バージョンでこれをテストしました。
これはフィドルです。
ありがとうございました。