javascript - 如何允许用户通过单击按钮或按空格键来按下按钮
问题描述
我创建了一个设备,用户可以在其中单击打开和关闭按钮来打开和关闭它。我也希望用户能够通过按键盘上的空格键来做同样的事情,但我遇到了一些麻烦。另外我是 javascript 和这个网站的新手,所以请原谅我的任何错误。
let buttons1=document.querySelectorAll(".col-6");
for(let i=0; i<buttons1.length; i++){
buttons1[i].onclick=function(){
document.body.onkeyup = function(e){
if(buttons1[i].innerHTML=='ON / OFF'||e.keyCode==32){
...rest of my code....
解决方案
你可以尝试这样的事情:
let buttonState = false;
document.getElementById("status").innerHTML = JSON.stringify(buttonState);
document.body.onkeyup = function(e) { // if space bar pressed
if (e.keyCode == 32 || e.key === ' ') {
toggleState();
}
}
function toggleState () { // toggle button state
buttonState = !buttonState;
document.getElementById("status").innerHTML = JSON.stringify(buttonState);
}
<button type="button" onclick="toggleState()">
Toggle On/Off
</button>
<div id="status"></div>
推荐阅读
- python-3.x - 如何模拟文件 IO,以便可以在单元测试中覆盖 name 属性?
- asp.net-core - 如何根据自定义请求的标头设置 Json.NET 的转换器
- c# - 通过 finder 启动时 Xamarin.Mac 应用程序崩溃 - 通过 VS 或终端启动时有效
- java - morphia 数据存储获取、保存、删除查询
- ffmpeg - 使用管道而不是文件从原始 h264 创建 mp4 文件
- python - 如何根据数据集中的行长过滤 RDD。?
- django-cms - 如何在 django-cms 中编辑 scss 文件?
- r - 在 R 中,有没有办法在几行代码中替换特定文本?
- javascript - 反应:无法更新儿童道具
- vb.net - 无法获取 .net 类中声明的方法列表