重现gmail窗口快捷方式

时间:2012-12-13 10:54:25

标签: jquery html keyevent intercept

我希望在HTML应用程序中重现gmail快捷方式行为。 如果按?你移动+ /(或移动+,在azerty键盘上)隐藏的div显示一个快捷方式列表。 (如果您在输入中,则键事件未被截获)。

我搜索用jquery正确拦截keydown来显示div。 在我的情况下,keydown在我页面的所有组件上被截获。

如何在其他HTML组件上禁用keyevent? 我试过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 个答案:

答案 0 :(得分:0)

你必须检查

  

e.target.type

查看您是否在页面的输入或其他部分。

答案 1 :(得分:0)

要停止传播事件,您需要检查三个功能

  1. preventDefault()
  2. stopPropagation()
  3. stopImmediatePropagation()
  4. 当您在与要处理的DOM级别相同的DOM级别上有多个事件时,需要最后一个。