0

HTML フォームがあり、jQuery ライブラリが読み込まれているとします。誰かが現在フォーム フィールドにフォーカスしていないときに Esc キーをクリックすると、フォーム ウィンドウを閉じるかどうかを尋ねるダイアログが表示されるようにしたいと思います (フォーム ウィンドウが新しいタブとして開かれるため)。 .

$(document) でキャプチャしようとすると、フィールドがこれを取得するイベントのバブリングに問題があるため、フィールドで Esc キーを押すとイベントが発生します。

どのフィールドにもフォーカスがないときに Esc が押されたときに、どうすれば効率的に (キーワード) イベント バブルを防ぎ、キャプチャできますか?

4

2 に答える 2

1

どの入力にもフォーカスがないことを確認するには、If ステートメントを使用する必要があります。

if ($('input').is(":focus")){ ... }

私の例では、エンターキーを押してフォーカスを確認しています。

お役に立てれば。

于 2012-01-09T09:50:20.243 に答える
0

これを試して :

    var cancelClose=false; // This is a global variable

    $(document).ready(function(){
        $('input, textarea,select').each(
                function(){
                    $(this).focus(
                            function(){
                                cancelClose=true;
                            }
                        );
                    $(this).blur(
                            function(){
                                cancelClose=false;
                            }
                        );
                }
        );
    });

そして、ドキュメントキーダウンイベントで

いう :

  if (cancelClose)
         return false;
于 2012-01-09T09:51:41.303 に答える