为什么 jQuery keyup 在我尝试在我的网站上构建键盘快捷方式时不起作用?
Why jQuery keyup is not working while I try to build keyboard shortcut on my website?
我正在尝试在我的网站中构建键盘快捷键以实现辅助功能。例如,当用户按下“1”时,我想把他搬到家里。当用户按“2”时,到另一个页面。
我正在尝试为此使用 keyup,但它不起作用。
$(function() {
$(document).keyup(function(e) {
if (e.which == 1) {
console.log('1');
window.location.href = '/';
} else if (e.which == 2) {
window.location.href = '/escolas';
} else if (e.which == 3) {
window.location.href = '/noticias';
} else if (e.which == 4) {
window.location.href = '/eventos';
} else if (e.which == 5) {
window.location.href = '/contato';
}
});
});
有人可以帮助我吗?当我按“1”时它没有记录 1。
这是因为“1”的键码不是 1 而是 49(或数字键盘上的 97)。
检查此以查看您的密钥代码:
$(function() {
$(document).keyup(function(e) {
$('body').text(e.type + ' ' + e.which);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
您使用的键码有误。参考 this
$(function() {
$(document).keyup(function(e) {
if (e.which == 49) {
console.log('1');
window.location.href = '/';
} else if (e.which == 50) {
window.location.href = '/escolas';
} else if (e.which == 51) {
window.location.href = '/noticias';
} else if (e.which == 52) {
window.location.href = '/eventos';
} else if (e.which == 53) {
window.location.href = '/contato';
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
可以通过String.fromCharCode(event.which);
获取关键字符,然后直接与实际字符进行比较:
$(function() {
$(document).keyup(function(e) {
if (e.key) {
var key = e.key;
} else {
var key = String.fromCharCode(e.which || e.keyCode);
}
if (key == 1) {
console.log('1');
window.location.href = '/';
} else if (key == 2) {
window.location.href = '/escolas';
} else if (key == 3) {
window.location.href = '/noticias';
} else if (key == 4) {
window.location.href = '/eventos';
} else if (key == 5) {
window.location.href = '/contato';
}
});
});
e.which 给你 ASCII 值。要将 ASCII 转换为字符,请使用 String.fromCharCode(e.which).
$(function () {
$(document).keyup(function (e) {
if (String.fromCharCode(e.which) == 1) {
window.location.href = '/';
} else if (String.fromCharCode(e.which) == 2) {
window.location.href = '/escolas';
} else if (String.fromCharCode(e.which) == 3) {
window.location.href = '/noticias';
} else if (String.fromCharCode(e.which) == 4) {
window.location.href = '/eventos';
} else if (String.fromCharCode(e.which) == 5) {
window.location.href = '/contato';
}
});
});
如果你想看点:
$(document).ready(function() {
'use strict';
const addresses = [
{
codes: [49, 97],
path: '/'
},
{
codes: [50, 98],
path: '/escolas'
},
{
codes: [51, 99],
path: '/noticias'
},
{
codes: [52, 100],
path: '/eventos'
},
{
codes: [52, 101],
path: '/contato'
}
]
$(document).on("keyup", evt => {
const key = evt.which;
addresses.map(address => {
if(address.codes.filter(code => code === key).length)
window.location.href = address.path;
})
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我正在尝试在我的网站中构建键盘快捷键以实现辅助功能。例如,当用户按下“1”时,我想把他搬到家里。当用户按“2”时,到另一个页面。
我正在尝试为此使用 keyup,但它不起作用。
$(function() {
$(document).keyup(function(e) {
if (e.which == 1) {
console.log('1');
window.location.href = '/';
} else if (e.which == 2) {
window.location.href = '/escolas';
} else if (e.which == 3) {
window.location.href = '/noticias';
} else if (e.which == 4) {
window.location.href = '/eventos';
} else if (e.which == 5) {
window.location.href = '/contato';
}
});
});
有人可以帮助我吗?当我按“1”时它没有记录 1。
这是因为“1”的键码不是 1 而是 49(或数字键盘上的 97)。
检查此以查看您的密钥代码:
$(function() {
$(document).keyup(function(e) {
$('body').text(e.type + ' ' + e.which);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
您使用的键码有误。参考 this
$(function() {
$(document).keyup(function(e) {
if (e.which == 49) {
console.log('1');
window.location.href = '/';
} else if (e.which == 50) {
window.location.href = '/escolas';
} else if (e.which == 51) {
window.location.href = '/noticias';
} else if (e.which == 52) {
window.location.href = '/eventos';
} else if (e.which == 53) {
window.location.href = '/contato';
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
可以通过String.fromCharCode(event.which);
获取关键字符,然后直接与实际字符进行比较:
$(function() {
$(document).keyup(function(e) {
if (e.key) {
var key = e.key;
} else {
var key = String.fromCharCode(e.which || e.keyCode);
}
if (key == 1) {
console.log('1');
window.location.href = '/';
} else if (key == 2) {
window.location.href = '/escolas';
} else if (key == 3) {
window.location.href = '/noticias';
} else if (key == 4) {
window.location.href = '/eventos';
} else if (key == 5) {
window.location.href = '/contato';
}
});
});
e.which 给你 ASCII 值。要将 ASCII 转换为字符,请使用 String.fromCharCode(e.which).
$(function () {
$(document).keyup(function (e) {
if (String.fromCharCode(e.which) == 1) {
window.location.href = '/';
} else if (String.fromCharCode(e.which) == 2) {
window.location.href = '/escolas';
} else if (String.fromCharCode(e.which) == 3) {
window.location.href = '/noticias';
} else if (String.fromCharCode(e.which) == 4) {
window.location.href = '/eventos';
} else if (String.fromCharCode(e.which) == 5) {
window.location.href = '/contato';
}
});
});
如果你想看点:
$(document).ready(function() {
'use strict';
const addresses = [
{
codes: [49, 97],
path: '/'
},
{
codes: [50, 98],
path: '/escolas'
},
{
codes: [51, 99],
path: '/noticias'
},
{
codes: [52, 100],
path: '/eventos'
},
{
codes: [52, 101],
path: '/contato'
}
]
$(document).on("keyup", evt => {
const key = evt.which;
addresses.map(address => {
if(address.codes.filter(code => code === key).length)
window.location.href = address.path;
})
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>