当前位置:  开发笔记 > 编程语言 > 正文

jQuery keypress()事件没有触发?

如何解决《jQuerykeypress()事件没有触发?》经验,为你挑选了3个好方法。

我试图用jQuery在右箭头键和左箭头键上按下一个事件.使用以下代码,我可以在任何字母数字键上触发事件,但光标键(向上,向下,向左,向右)不会触发任何内容.我主要为IE用户开发该网站,因为它是一个业务线应用程序.我在这里做错了吗?

$('document').keypress(function(e){
    switch (e.which) {
        case 40:
            alert('down');
            break;
        case 38:
            alert('up');
            break;
        case 37:
            alert('left');
            break;
        case 39:
            alert('right');
            break;
        default:
            alert('???');  
            }      
});

Nick Berardi.. 47

e.which在IE中不起作用尝试e.keyCode,如果你的目标是IE,你可能也想使用keydown()而不是keypress().

有关更多信息,请参见http://unixpapa.com/js/key.html.



1> Nick Berardi..:

e.which在IE中不起作用尝试e.keyCode,如果你的目标是IE,你可能也想使用keydown()而不是keypress().

有关更多信息,请参见http://unixpapa.com/js/key.html.


[jQuery规范化.which属性,以便你可以可靠地使用它来检索密钥代码.](http://api.jquery.com/keyup/)`keyup()`适用于IE11的IE10 IE文档模式2.1.0.

2> Jack Lawson..:

使用jQuery,我已经做到了这种方式:

function checkKey(e){
     switch (e.keyCode) {
        case 40:
            alert('down');
            break;
        case 38:
            alert('up');
            break;
        case 37:
            alert('left');
            break;
        case 39:
            alert('right');
            break;
        default:
            alert('???');  
            }      
}

if ($.browser.mozilla) {
    $(document).keypress (checkKey);
} else {
    $(document).keydown (checkKey);
}

另外,试试这些插件,看起来它们可以为您完成所有工作:

http://www.openjs.com/scripts/events/keyboard_shortcuts

http://www.webappers.com/2008/07/31/bind-a-hot-key-combination-with-jquery-hotkeys/



3> 小智..:

你在字符串中有'document'这个词.更改:

$('document').keypress(function(e){

$(document).keypress(function(e){

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有