Javascript 当我试图在我的网站上构建键盘快捷键时,为什么jquerykeyup不起作用?
我正试图在我的网站上建立可访问性的键盘快捷键。例如,当用户按“1”时,我想将他移动到家中。当用户按“2”键时,会转到另一页 我正在尝试使用keyup进行此操作,但它不起作用Javascript 当我试图在我的网站上构建键盘快捷键时,为什么jquerykeyup不起作用?,javascript,jquery,accessibility,keyboard-shortcuts,Javascript,Jquery,Accessibility,Keyboard Shortcuts,我正试图在我的网站上建立可访问性的键盘快捷键。例如,当用户按“1”时,我想将他移动到家中。当用户按“2”键时,会转到另一页 我正在尝试使用keyup进行此操作,但它不起作用 $(function() { $(document).keyup(function(e) { if (e.which == 1) { console.log('1'); window.location.href = '/'; } else if (e.which == 2) {
$(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(对于numpad上的键代码是97) 选中此项查看您的密钥代码:
$(函数(){
$(文档).keyup(函数(e){
$('body').text(e.type+''+e.which);
});
});代码>
您使用了错误的钥匙码。提及
$(函数(){
$(文档).keyup(函数(e){
如果(e.which==49){
console.log('1');
window.location.href='/';
}否则,如果(e.which==50){
window.location.href='/escolas';
}否则如果(e.which==51){
window.location.href='/noticias';
}否则如果(e.which==52){
window.location.href='/eventos';
}否则如果(e.which==53){
window.location.href='/contato';
}
});
});代码>
您可以通过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。它提供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';
}
});
});
如果你想变得花哨:
$(文档).ready(函数(){
"严格使用",;
常量地址=[
{
代码:[49,97],
路径:'/'
},
{
代码:[50,98],
路径:'/escolas'
},
{
代码:[51,99],
路径:'/noticias'
},
{
代码:[52100],
路径:'/eventos'
},
{
代码:[52101],
路径:'/contato'
}
]
$(文档).on(“键控”,evt=>{
const key=evt.which;
addresses.map(地址=>{
if(address.code.filter(code=>code==key.length)
window.location.href=address.path;
})
});
})
请参考>记住,如果用户使用numpad按下这些数字中的任何一个,这都不起作用。@CristianosAres,谢谢你的提醒,现在它也适用于numpad。