0

blurイベントでコンテキストメニューをうまく非表示にしようとした人はいますか? 私がやりたいことは、マウスがコンテキスト メニュー内に配置されていないときに、カスタマイズされた右クリック メニューを非表示にすることですdiv

これは、jquery コンテキスト メニュー プラグインを使用します。

4

3 に答える 3

1

フォーカスがコンテナーの領域を離れるタイミングを知りたいが、コンテナー内の子コントロールがイベントをトリガーしないようにする場合は、 を使用しますmouseleave

$('#menu').on('mouseleave', function(){
  $(this).hide();
});

mouseoutまたはblur、このシナリオでは必要ありません。コンテナー内の子コントロールがマウス フォーカスを受け取るとトリガーされ、それらを含むメニューが非表示になるためです。

于 2013-06-20T16:05:32.293 に答える
0

コールバックでぼかしを使用します。ただし、テストされていません。他のぼかしの右クリック機能を復元しますか? これは、他の種類のイベントでより適切に実行されると思います。

$("input").blur(function () {
     window.oncontextmenu = function () {
        return false;
     }
});
于 2009-09-20T15:54:04.303 に答える
-1

あなたはイベントについて明示的に言及していますが、あなたが言及したコンテキストメニューはおそらく焦点が合ったりぼやけたりすることはないblurので、それが実際に必要なものではないと思います。div

mouseoutイベントを使用する必要があります。

コンテキストメニューのIDが「contextMenuContainer」であるとすると、これでカバーされます。

$('#contextMenuContainer').mouseout(function() {
    $(this).hide();
});

詳細については、jQueryイベント/マウスアウトのドキュメントを参照してください。

アップデート:

リンク先のプラグインページにmouseoutイベントハンドラーを登録してみましたが、問題なく起動していました。ただし、メニュー項目を変更するたびに発生することに注意してください。そのため、イベントターゲットをチェックして、マウスが実際にメニュー全体を終了したことを確認する必要があります。

于 2009-09-20T16:10:11.413 に答える