将jQuery onClick切换到keyCode

时间:2016-04-17 00:45:47

标签: javascript jquery keycode keypad

为了将我的jQuery onClick事件转换为用户可以使用键盘的按键事件,我缺少什么?

具体示例是计算器。使用jQuery和点击/触摸事件工作完美。但是,当我尝试引入keyCodes时,我认为不应该得到结果。

这是我的示例代码;

$(document).keypress(function(event){
    var display = "0";
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode === 13){
        alert(keycode + " = ENTER");    
        calcDisplay(total(), true);
    }
});

我从其他成功的解决方案中找到了类似的问题。所以我理解的方式是;如果有人按下"在键盘上输入" ,我会收到提醒,然后处理我的回答。

这个适用于我的jQuery版本看起来像这样;

$(".button").on("click touch", function(){
    var button = $(this).data("value");
    if(button === "="){
      calcDisplay(total(), true);
    }
如果这对我来说是非常愚蠢的事情,请提前向JS提供超级新闻。

1 个答案:

答案 0 :(得分:1)

keypress用于在插入字符作为输入时使用。 keydown旨在用于检测任何键。

quirksmode has a nice little write-up about the differences

而不是$(document).keypress使用$(document).keydown

此外,jQuery规范化event.which,因此代替:

var keycode = (event.keyCode ? event.keyCode : event.which);

你可以使用

var key = e.which;