如何使以下.keypress事件处理程序工作?

时间:2016-03-14 16:35:13

标签: javascript jquery

我试图运行下面列出的以下事件处理程序;它最初是一个keydown函数,但我需要配置按键。有人可以解释我在这里做错了什么吗?

$(document).on('keypress', function(event) { 
        if (event.shiftKey) {
            if (event.which === 37) {
                currentPosition = (currentPosition>0) ?    parseInt(currentPosition)-1 : maxFocusablePosition;  
                console.log(' shift + left');

                focusPosition(currentPosition);  
                } 

            else if (event.which === 39) {
                currentPosition = (currentPosition<maxFocusablePosition) ? parseInt(currentPosition)+1 : 0; 
                console.log('shift + right');

                focusPosition(currentPosition);  
                }

        }
    });

1 个答案:

答案 0 :(得分:1)

生成可打印字符时会触发keypress事件。由于您的代码正在查找Shift键和箭头键(两个键都不会产生可打印字符) ,你不会碰到if陈述的任何一个分支。

您需要使用keyupkeydown