1

HTMLアプリケーションでGmailのショートカットの動作を再現したいと思っています。を押すと?ou shift + /(または、azertyキーボードではshift +)非表示のdivがショートカットリストとともに表示されます。(入力中の場合、キーイベントはインターセプトされません)。

jqueryでキーダウンを正しくインターセプトしてdivを表示するように検索します。私の場合、キーダウンは私のページのすべてのコンポーネントで傍受されます。

他のHTMLコンポーネントでキーイベントを無効にする方法は?試してみましe.stopPropagation();たが、効果がありません。

編集: 私はこのコードを見つけましたが、IE7では機能していません

        $("input, textarea").keydown(function (e) {
            e.stopPropagation();
        });


        function close_help(){
             $("#help:even").addClass("aou");
        }

        function doKeyDown(e) {
            if (e.keyCode == 188) {
                $("#help:even").removeClass("aou");
            }

        }

        var input_ = document.getElementsByTagName("input").elements;

        if ($.browser.msie && $.browser.version < 9) {
            window.attachEvent("keydown", doKeyDown, true);
        }
        else {
            window.addEventListener("keydown", doKeyDown, false);
        }
        input_.removeEventListener("keydown");
4

2 に答える 2

0

チェックする必要があります

e.target.type

ページの入力または他の部分にいるかどうかを確認します。

于 2012-12-13T10:58:21.197 に答える
0

イベントの伝播を停止するには、3 つの機能を確認する必要があります

  1. preventDefault()
  2. 伝播停止()
  3. stopImmediatePropagation()

最後のイベントは、処理したいイベントと同じ DOM レベルに複数のイベントがある場合に必要です。

于 2012-12-13T11:00:53.970 に答える