【问题标题】:Reproduce the gmail windows shortcuts重现 gmail windows 快捷方式
【发布时间】:2012-12-13 10:54:24
【问题描述】:

我希望在我的 HTML 应用程序中重现 gmail 快捷方式的行为。 如果按 ? ou shift+/(或 shift+,在 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");

【问题讨论】:

    标签: jquery html keyevent intercept


    【解决方案1】:

    你必须检查

    e.target.type

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

    【讨论】:

      【解决方案2】:

      要停止事件的传播,您需要检查三个函数

      1. preventDefault()
      2. stopPropagation()
      3. stopImmediatePropagation()

      当您在与要处理的事件相同的 DOM 级别上有多个事件时,需要最后一个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多