【问题标题】:Switch jQuery onClick to keyCode将 jQuery onClick 切换到 keyCode
【发布时间】:2016-04-17 00:45:46
【问题描述】:

为了将我的 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);
    }
});

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

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

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

如果这对我来说是超级愚蠢的事情,那么这里对 JS 的超级新人非常喜欢。

【问题讨论】:

  • 您的代码应该可以工作。这是一个正在工作的 plunker plnkr.co/edit/mvDnrOEiUPgmUKWBj5OD?p=previewconsole.log(keycode);if(keycode === 13) 之前给你什么
  • 如果你记录keycode,记录的值是多少?
  • keydown 而不是keypress

标签: javascript jquery keycode keypad


【解决方案1】:

keypress 用于将字符作为输入插入时使用。 keydown 用于检测 any 键。

quirksmode has a nice little write-up about the differences.

$(document).keydown代替$(document).keypress


另外,jQuery 规范化了event.which,所以不是:

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

你可以使用

var key = e.which;

【讨论】:

  • 神奇!所有操作员都在按需工作。此外,我似乎试图在定义 calcDisplay() 函数之前单独执行它。尚未解决数字键码,但我们走在正确的道路上。谢谢大家的帮助。
猜你喜欢
  • 2023-02-12
  • 2017-06-06
  • 2018-05-18
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
  • 2019-09-17
  • 2017-07-26
  • 2018-02-27
相关资源
最近更新 更多