将 jQuery onClick 切换到 keyCode

Posted

技术标签:

【中文标题】将 jQuery onClick 切换到 keyCode【英文标题】:Switch jQuery onClick to 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=preview 。 console.log(keycode);if(keycode === 13) 之前给你什么 如果你记录keycode,记录的值是多少? keydown 而不是keypress 【参考方案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() 函数之前单独执行它。尚未解决数字键码,但我们走在正确的道路上。谢谢大家的帮助。

以上是关于将 jQuery onClick 切换到 keyCode的主要内容,如果未能解决你的问题,请参考以下文章

切换音乐的 onClick 图像

jQuery:将 onClick 绑定到指向具有 target=_self 的其他页面的所有锚点

如何使用 JQuery onclick 将 MySql 中的随机内容加载到 div 中? [复制]

jquery简单几句代码就显示tab切换

jquery 如何实现iframe页面的切换??

jquery拖放按钮onclick