项目场景:

做小游戏开发项目时,显示键盘事件event.which方法已弃用,可替换为为KeyboardEvent.key 或者KeyboardEvent.code
虽然不做更改也可以运行,但强迫症看着属实有些难受,而且技术迭代那么快,我们也要随时关注官方更新呀!


问题描述

document.onkeydown = function (event) {console.log(event.which);         //提示“which”已弃用if (event.which == 37 ) {console.log('左'); } else if (event.which == 38) {console.log('上'); } else if (event.which == 39) {console.log('右'); } else if (event.which == 40) {console.log('下'); }}

原因分析:


查看文档后发现keyCode也随之弃用

解决方案:

一、可以替换成event.key方法

document.onkeydown = function (event) {    console.log(event.key); if (event.key == 'ArrowLeft' ) {console.log('左'); } else if (event.key == 'ArrowUp') {console.log('上');               } else if (event.key == 'ArrowRight') {console.log('右');              } else if (event.key == 'ArrowDown' ) {console.log('下');       }}

二、同理可替换为event.code,在此项目中同样适用

document.onkeydown = function (event) {    console.log(event.code); if (event.code == 'ArrowLeft' ) {console.log('左'); } else if (event.code == 'ArrowUp') {console.log('上');               } else if (event.code == 'ArrowRight') {console.log('右');              } else if (event.code == 'ArrowDown' ) {console.log('下');       }}

注意**

code和key获取过来的部分键盘值会有差异,如做判断需要注意混淆

JavaScript——event.which弃用相关推荐

  1. javascript event详解

    event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromEleme ...

  2. Javascript Event事件-总结

    一.事件类型 例如:mouseover鼠标移动到.keydown键盘按下 二.事件目标 是发生的事件或与之相关的对象,window.document和Element对象是最常见的事件目标 三.事件对象 ...

  3. javascript event bubbling and capturing (再谈一谈js的事件冒泡和事件补获,看到这篇文章加深了理解)...

    原文地址:http://javascript.info/tutorial/bubbling-and-capturing 先给出最终的结论: Summary Events first are captu ...

  4. 试图解释清楚【JavaScript Event Loop】

    本篇文章较长,让网络飞一会再看~ 本文结构 - 带着问题看这篇文章 - JS Runtime的几个概念 - Event Loop事件循环 - UI Rendering Task - 可视化:event ...

  5. javascript --- event loop

    栗子1 求下面函数的输出 console.log('script start');setTimeout(() => {console.log('setTimeoout'); }, 0);Prom ...

  6. javascript event

    event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromEleme ...

  7. 一张图轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别

    先总结下区别:event.clientX.event.clientY鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性event. ...

  8. javascript Event对象

    参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Event Event接口表示在DOM中发生的事件(鼠标,键盘,动画,图片加载,视频暂停等等) ...

  9. javascript Event监听

    参考:https://developer.mozilla.org/en-US/docs/Web/API/Element HTML中调用:<button onclick="alert(' ...

最新文章

  1. Python基础05-数据类型:列表list
  2. Xonsh库——Python和Shell语法互通
  3. Level3公司在哥伦比亚开通运营第三个数据中心
  4. asp.net(c#) linkbutton CommandArgument
  5. 电子书下载|2020 年云原生年货小红书来啦!
  6. java的object如何转为具体的类_佛山个体户如何转为公司?
  7. docker 镜像修改的配置文件自动还原_Docker 基础与实战,看这一篇就够了
  8. python深度神经网络量化_深度神经网络数据集大小
  9. Java+Windows+ffmpeg实现视频转换
  10. python下划线怎么输入_python长的下划线怎么打
  11. 线性表-串:KMP模式匹配算法
  12. html中的特殊符号
  13. cmake相关:sudo make install后的卸载
  14. 过滤器在图纸上的符号_看不懂电气图纸?资深级老师傅教你如何识图,学会后受用一生...
  15. 多叉树的深度优先遍历并输出叶子路径
  16. 最好用的两个oracle数据库客户端(OB11+osqledit)
  17. 金三银四,冰河为你整理了这份20万字134页的面试圣经!!
  18. urlrewrite java_Java中URL重写(urlrewrite+Maven)
  19. ls只显示文件名/只显示文件夹名
  20. 看到有人在帮易到洗白,镁客君只想说:易到或许并非不可或缺

热门文章

  1. Android如何获取当前连接wifi的信道?
  2. Alian解读SpringBoot 2.6.0 源码(八):启动流程分析之刷新应用上下文(中)
  3. BG2RHE - 用AtmelStudio7给ATMEGA芯片下载Arduino的bootloader的简便方法
  4. 原生安卓使用webview在线阅读pdf文档——解决方案
  5. 阿里大鱼--短信发送API
  6. 电赛元器件清单多年总结及分析
  7. Mysql数据库及表空间占用信息统计
  8. 关于Altium Designer 16 导出BOM(元器件清单)出现空白的解决办法
  9. jenkins--Linux下安装jenkins
  10. 用Delphip写新型QQ木马