javascript - 键盘交互后未立即注册鼠标单击
问题描述
我正在尝试创建一个自定义复选框。我已经处理了空格键的 click 和 onkeypress 。它工作正常,但是如果我在按下空格键后尝试单击它,则鼠标单击未注册。
比如这一系列事件:
- 单击->选中
- 单击->取消选中
- onkeypress -> 选中
- onkeypress-> 取消选中
- 单击 -> 未注册
- 单击->选中
这不是第一次点击没有注册,只有当我按下空格键后太快点击时才注册。
我也用默认的 html 复选框检查了它,它也有同样的问题。
我并不是专门寻找解决方案,因为这种情况实际上不会发生,而是原因。有人知道这是什么原因吗?似乎 onkeypress 事件处理程序不会立即返回,因此主线程被阻塞并且没有捕获任何交互。
<!DOCTYPE html>
<html>
<body>
<p>Display some text when the checkbox is checked:</p>
Checkbox: <input type="checkbox" id="myCheck" onclick="myFunction()">
<p id="text" style="display:none">Checkbox is CHECKED!</p>
<script>
function myFunction() {
var checkBox = document.getElementById("myCheck");
var text = document.getElementById("text");
if (checkBox.checked == true){
text.style.display = "block";
} else {
text.style.display = "none";
}
}
</script>
</body>
</html>
我正在 Windows 上的 Chrome v71 中对此进行测试。
解决方案
推荐阅读
- angular - 我可以在一个解析器文件中有两个单独的 API 调用吗?(角度 9)
- python - Python中的德摩根定律没有像我认为的那样有效
- google-sheets - sumif 条件中的多个条件
- firebase - 像在firebase中一样查询sql的有效方法
- android - Flutter/Firebase:google-services.json 的安全问题
- html - 3 列中的 div
- node.js - node cron 如何记住它的任务?
- ubuntu - 在 Ubuntu 20.04 LTS 上的 virtualenv 上安装 caffe
- bash - 太多的参数Shell脚本如果检查
- firebase - Firebase 性能监控(角度)