我有一个遗留的jquery方法,就像这样开始:
$(function() {
$(document).keypress(function(e) {
if ($(document.activeElement).is('body')) {
if (e.which==48) { // 0
我想清理代码,使其更具可读性。
如何检查用户是否按了“0”键?
是否有常数,或者您可以使用if (e.which==unkown_method('0')) { ...
提示:代码有效,但希望它没有幻数。
解决方案
在用户“Archer”的帮助下,我现在使用此解决方案:
var key=String.fromCharCode(e.which);
if (key=="0") {
...
}
else if (key=="5") {
...
}
答案 0 :(得分:3)
如果你问我认为你在问什么,那么这应该有帮助......
if (String.fromCharCode(e.which) == "0") { etc..
编辑由于jQuery标准化事件所以它始终使用which
,因此下一位实际上并不相关,但我会留在此处供参考。
另外,请记住,不同的浏览器的事件类型略有不同,因此您可能需要包含此..
var key = String.fromCharCode(e.keyCode ? e.keyCode : e.which);
if (key == "0") { etc..
这是一个通用的代码,我已经永远躺在那里,说实话,我不记得哪些浏览器做了什么,但有些使用keyCode
并且有些使用which
。这涵盖了两种可能性。
答案 1 :(得分:0)
答案 2 :(得分:0)
$(function(){
$(document).keydown(function(e) {
if ($(document.activeElement).is('body'))
{
if (e.which==48) {
// do something..
}
}
});
});
使用keydown事件而不是keypress事件。我希望它能正常运作。