javascript - js keybourd 函数 - 事件未定义

标签 javascript

这段代码有什么问题?为什么 console.log(evt) 返回“undefined”?

这是我的代码:

var documentKeydown = (evt)=>{
        console.log(evt);
        if (counter == 0) {
            XWhenDown = currentX;
            YWhenDown = currentY;
            document.onkeyup = documentKeyup();
            switch (evt.keyCode) {
                case 37 : currentX -= 10; break;
                case 38 : currentY -= 10; break;
                case 39 : currentX += 10; break;
                case 40 : currentY += 10; break;
            }
            animationTick = Ticker.add(animation);
        }
    }

    document.onkeydown = documentKeydown();

最佳答案

你应该只在事件发生时调用你的函数:

var documentKeydown = ()=>{
    console.log(event);
    if (counter == 0) {
        XWhenDown = currentX;
        YWhenDown = currentY;
        document.onkeyup = documentKeyup();
        switch (event.keyCode) {
            case 37 : currentX -= 10; break;
            case 38 : currentY -= 10; break;
            case 39 : currentX += 10; break;
            case 40 : currentY += 10; break;
        }
        animationTick = Ticker.add(animation);
    }
 }

document.addEventListener('keydown', documentKeydown) ;

关于javascript - js keybourd 函数 - 事件未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59234264/

相关文章:

javascript - 使用 codeigniter 在 php&mysqli 中进行多级登录

javascript - 将 4 行 Jquery 转换为 Mootools

javascript - 使用 Javascript 获取字符串结尾

javascript - 似乎没有使用元素中传入的选项执行 Angular 指令

javascript - 有哪些优秀的 HTML 5、CSS 3 和 JavaScript 博客?

javascript - Ajax window.location 不适用于 PHP 登录脚本

javascript - XMLHttpRequest/ajax 设置内容类型

javascript - 无法在 Nodejs 中访问数据库结果,它总是返回 null

javascript - 将 <a href> 宽度设置为链接长度而不指定具体长度

javascript - 没有jquery我需要找出鼠标是否在一个元素上,而不是确定它何时结束(以防它不移动触发onmouseover)