JavaScript绑定键盘事件的多种写法
使用JavaScript来绑定键盘事件时,有多种写法,而他们的实现效果实际上是等价的,下面一一来列举。
方式一:
function keyboard() {document.onkeydown = function() {let keycode = event.keyCode;if (keycode == 32) {alert("空格键被按下了");}}
}
keyboard();
随后我们执行这个函数,就可以实现键盘事件绑定。
代码中的event
是一个对象,如果你打印event的话,会返回[object KeyboardEvent]
。
在事件发生时,浏览器会创建一个event对象,所有相关信息会收集并存储在该对象中。这些对象包含一些基本信息,比如导致事件的元素、发生的事件类型,以及可能与特定事件相关的任何其他数据。
在DOM合规的浏览器中,event对象是传给事件处理程序的唯一参数。不管以哪种方式指定事件处理程序,都会传入这个event对象。
event
对象的keyCode
属性会保存一个键码,对应键盘上特定一个键。方式一种的32,对应就是键盘中的空格键。
document.onkeydown
来对用户敲击键盘事件进行监听,它需要绑定一个具体执行函数。比如方式一中的function函数,当键盘被按下时进行具体执行。但是代码这样写,理解起来不太直观,我们使用方式二来实现一下同样的功能。
方式二:
function keyboard(event) {let keycode = event.keyCode;if (keycode == 32) {alert("空格键被按下了")}
}//参数1:表示事件,keydown:键盘向下按;参数2:表示触发的事件处理函数
document.addEventListener("keydown", keyboard);
方式二实现的功能和方式一完全一样,但写成事件监听的方式理解起来要更为容易。
参考资料
[1] 《JavaScript高级程序设计(第四版)》
[2] 浏览器事件简介
[3] onkeydown 事件
JavaScript绑定键盘事件的多种写法相关推荐
- 详解在vue项目当中绑定键盘事件
在vue项目当中,有时会遇到为文本输入框或者button按钮绑定键盘事件,最常见的就是enter回车事件. 按照vue官网给出的方法是: v-on:keyup.enter 简写: @keyup.ent ...
- 正确绑定键盘事件_事件为何重要以及如何正确处理
正确绑定键盘事件 玛丽娜·佩奇 ( Marina Paych )在她的生日那天离开了一个非政府组织,开始了IT行业的新起点时,她是开源软件的新来者. 但是真正的惊喜竟然是开源. 快进两年了,这个组织发 ...
- vue绑定键盘事件 ctrl+enter触发事件
公司项目(vue+element)有个需求,是在一个input输入内容后按下Enter键进行搜索查询,查询到得数据显示在表格,勾选表格的选中的数据进行提交(提交按钮的快捷键是Ctrl+Enter键盘) ...
- Javascript鼠标键盘事件
鼠标事件 click:单击 dblclick:双击 mousedown:鼠标按下 mouseup:鼠标抬起 mouseover:鼠标悬浮 mouseout:鼠标离开 mousemove:鼠标移动 mo ...
- JavaScript 获取键盘事件(键盘某个按键被按下)
键盘事件(Keyboard Events) 属性 值 描述 onkeydown script 当按下按键时运行脚本 onkeypress script 当按下并松开按键时运行脚本 onkeyup sc ...
- javascript之键盘事件onkeydown,onkeyup,onkeypress
键盘事件 键盘事件一般绑定给document,以及一些可以获取焦点的标签,如input标签. onkeydown事件: 当键盘任意键按下时执行,按下不松,会不断执行. onkeyup事件: 当键盘任意 ...
- jQuery绑定键盘事件
作者:lina791211-----感谢作者!! 雪影工作室版权所有,转载请注明[http://blog.csdn.net/lina791211] 1.前言 Jquery绑定各种键盘输入事件. 键值获 ...
- JavaScript的键盘事件
键盘事件 keypress 当键盘键按下的过程 首先,按键被按下,然后, 按键被松开 keydown 当键盘键按下时,触发 Keyup 当键盘键松开时,触发 触发顺序 1.keypress键按下的过程 ...
- vue绑定键盘事件无效问题,vue绑定键盘delete事件示例,组合键绑定
项目有个需求,点击某个组件,按delete健后删除,于是乎第一就是想到了键盘事件 @keyup.delete='deleteKeyup(e)' 可是按delete键试了半天都没反应,加了.native ...
最新文章
- C02-程序设计基础提高班(C++)第9周上机任务-类和对象
- 【HDU】1005 Number Sequence (有点可爱)
- Oracle SID爆破工具SidGuess
- c++ 中__declspec 的用法
- 计算代码重复率_了解了知网大学生论文查重原理,重复率想高于6%都难!
- rm: 无法删除swap: 不允许的操作_safe-rm老板再也不用担心我删库跑路啦[视频]
- java ocsp请求_java – 客户端证书上的OCSP吊销
- 拜托!代码有BUG不一定都是程序员的锅
- php之isset() 、empty()、is_null()的区别
- 中小学教师计算机应用,关于中小学教师计算机应用教育的思考
- 【Nginx探究系列二】Nginx配置篇之客户Nginx白名单访问配置
- 深度学习基础系列(六)| 权重初始化的选择
- 526个儿童游戏APP应用音效游戏声音集合音效素材 Kids Game Sound Effects
- 专辑:Redis视频教程
- 编程随想 关系图_邹军:想成为编程工程师,玩透数控宏程序编程,这里有一个大招分享给你...
- ppt上显示无法显示图片计算机可能,把手机里做好的PPT导入电脑,为何有些图片会显示不出来?该如何解决?...
- IntelliJ Keymap
- IT界最短的笑话:上中台!
- xpath中ends-with无法定位问题的解决办法
- Transcend带来4TB/8TB私人云储存解决方案Storejet
热门文章
- flowable对比
- 使用 sqlyog 导入导出数据显示 lost connection to mysql server during query
- 1. 青蛙跳跳FrogJmp Count minimal number of jumps from position X to Y.
- linux下查看文件夹的大小
- IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
- MAX Script 脚本语言
- CSS3新的鼠标样式介绍
- VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
- CNN卷积层图像和矩阵转换函数
- 【Deep Learning】Tensorflow实现线性回归