Javascript 要在按下向上和向下键时触发功能?
我想让它在按下向上或向下键时触发不同的功能。这是我目前的代码:Javascript 要在按下向上和向下键时触发功能?,javascript,function,if-statement,addeventlistener,keycode,Javascript,Function,If Statement,Addeventlistener,Keycode,我想让它在按下向上或向下键时触发不同的功能。这是我目前的代码: window.addEventListener('keypress', function(e) { console.log("A Key has been pressed"); /*Sets "key" variable to be the value of the key code of the key pressed*/ var key = e.which || e.keyCode; /*c
window.addEventListener('keypress', function(e) {
console.log("A Key has been pressed");
/*Sets "key" variable to be the value of the key code of the key pressed*/
var key = e.which || e.keyCode;
/*checks if key pressed is the "up" key*/
if (key === 38){
functionOne();
console.log("Up key was Pressed");
}
/*checks if key pressed is the "down" key*/
else if (key === 40){
functionTwo();
console.log("Down key was Pressed");
}
})
每当我按下除箭头键、shift键、alt键、caps键、tab键和f1-f12键以外的任何键时,显示“已按下一个键”的控制台日志就会激活。这可能是什么原因造成的
感谢您的支持。请改用此活动
不会对所有浏览器中的所有键(例如ALT、CTRL、SHIFT、ESC、箭头)触发onkeypress事件。要仅检测用户是否按下某个键,请改用该事件,因为它适用于所有键
您如何确认事件正在触发?将console.log放在事件回调本身中-永远不要假设它正在触发。如果是,下一步是检查
键的值是多少。基本调试。谢谢你,这是个好建议,我会根据结果添加并编辑问题。你用什么浏览器来测试这个问题?Chrome Web浏览器“e.preventDefault();”做什么?同样,谢谢你的回答,但似乎还没有解决它e.preventDefault()代码>例如,当:单击“提交”按钮,阻止其提交表单,单击链接,阻止链接遵循URL@HugoStiles很高兴能帮助你
window.addEventListener('keyup', function(e) {
var key = e.which || e.keyCode;
console.log(key);
if (key === 38){
console.log("Up key was Pressed", key );
}
else if (key === 40){
console.log("Down key was Pressed", key );
}
e.preventDefault();
})