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();
})