【发布时间】:2019-03-02 23:57:39
【问题描述】:
我的 HTML 网页有一个 JS 文件。我想检查 4 件事。如果他们在键盘上点击一个数字 1-4,它会将他们带到指定的 url。该脚本有效,但前提是我有一个。
当我将所有 4 个事件都放在 js 文件中时,只有最后一个/最近的一个有效。是否有某种我做错的语法导致它们全部停止工作?
为了进一步解释,使用这段代码,只有这部分脚本运行:
//If they hit keypad number 4
document.body.onkeyup = function(e){
if(e.keyCode == 52){
window.location.href = "foo";
JS:
//If they hit keypad number 1
document.body.onkeyup = function(e){
if(e.keyCode == 49){
window.location.href = "http://localhost:1337/trail";
}
}
//If they hit keypad number 2
document.body.onkeyup = function(e){
if(e.keyCode == 50){
window.location.href = "foo";
}
}
//If they hit keypad number 3
document.body.onkeyup = function(e){
if(e.keyCode == 51){
window.location.href = "http://localhost:1337/topten";
}
}
//If they hit keypad number 4
document.body.onkeyup = function(e){
if(e.keyCode == 52){
window.location.href = "foo";
}
}
【问题讨论】:
-
只需在事件调用中使用条件,而不是一次又一次地写入
-
这可能有点矫枉过正,但为了键盘输入和更好的可读性,您可能想看看mousetrap
-
只需创建一个 keycode-url 对
{49: 'http://...', 50: 'http://...'}的映射。
标签: javascript html events dom-events onkeyup