将 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的主要内容,如果未能解决你的问题,请参考以下文章
jQuery:将 onClick 绑定到指向具有 target=_self 的其他页面的所有锚点