Воспроизведите ярлыки Windows Gmail

Я смотрю, чтобы воспроизвести поведение ярлыков Gmail в моем приложении HTML. Если вы нажмете? На клавиатуре Shift+/ (или Shift+, на клавиатуре azerty) появляется скрытый div со списком ярлыков. (Если вы находитесь на входе, ключевое событие как не перехвачено).

Я ищу, чтобы правильно перехватить keydown с помощью jquery, чтобы показать div. В моем случае, keydown перехватывается на всех компонентах моей страницы.

Как отключить keyevent на других компонентах 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");

2 ответа

Вам придется проверить

e.target.type

чтобы увидеть, если вы находитесь на входе или другой части страницы.

Чтобы остановить распространение события, необходимо проверить три функции.

  1. preventDefault ()
  2. stopPropagation ()
  3. http://api.jquery.com/event.stopImmediatePropagation/

Последнее необходимо, когда у вас есть несколько событий на одном уровне DOM, который вы хотите обработать.

Другие вопросы по тегам