将 jQuery onClick 切换为 keyCode

Switch jQuery onClick to keyCode

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

具体例子是计算器。使用 jQuery 和 on click/touch 事件完美无缺。但是,当我尝试引入 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);
    }
});

其中大部分是我从其他类似问题的成功解决方案中提取的。所以我的理解是;如果有人在键盘上按 "enter",我会收到警报,然后处理我的答案。

适合我的 jQuery 版本如下所示;

$(".button").on("click touch", function(){
    var button = $(this).data("value");
    if(button === "="){
      calcDisplay(total(), true);
    }

superNewb 到 JS 如果这对我来说是非常愚蠢的事情,请提前多多关爱。

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;