我正在使用 jquery 创建命名空间事件。当我使用代码=112 的以下函数时,函数 bool=false,在 FF 中一切正常,F1 键提交给我的函数,并且事件不会冒泡以在新选项卡中打开 Firefox 帮助。

function bindKeyFunc(code, func, bool){
    $(document).bind('keypress.' + code, function(e){
        var c = (e.keyCode ? e.keyCode : e.which);
        //console.log(c);
        if ( code == c) {
            //e.stopPropagation();
            //e.preventDefault();
            func();
            return bool;
        }
    });
}

在 chrome 和 ie8 中,我的事件监听器不会触发,而是会发生常规帮助,即使我取消注释 stopPropagation 和 preventDefault 调用。

同样,当我出于自己的目的尝试接管 <tab> 键时,它在 FF 中运行良好,但我的事件不会在 chrome 或 ie8 中触发,而是触发选项卡的默认操作:
    $('input#manual-total').bind('keypress.dep', function(e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if ( code==9 ){
            $('div#formset').show();
            $(next).focus()[0].select();
            return false;
        }
    });

最佳答案

祝你好运。浏览器中特殊键的映射是一团糟。特别是 IE certainly does not fire keypress events for function keys at all 。不过,onkeydown/up 可能适用于 IE。许多键被不同的浏览器以不同的方式错误地处理。我强烈怀疑是否存在处理 F1 的跨浏览器方法。对不起;我知道这不是你想要的答案,但我相信这是事实。

请阅读链接的文章,特别是关于“当我发现我决定不通过进行进一步的标点符号实验来冒着理智的风险时”的偶尔警告。之类的。 :)

关于jquery - 覆盖 FF、chrome 中的 F1 键,即。 ie8/chrome 上的 F1 是按键上的还是 FF 上的按键?输入字段中的 <tab> 怎么样?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1473496/

10-17 02:13