我有一个页面,当用户按住某个键时,在我的情况下[Ctrl],他们能够以特定的方式与页面元素进行交互.一旦他们释放密钥,并且keyup事件触发,我重置一些标志.我发现,当我按住键时单击选择下拉列表时,键盘事件永远不会被捕获.我创建了一个快速笔来演示这个问题.我不知道这可能是一个范围问题.目前我正在使用jQuery来监听,$(document).on('keyup',(e)=>{})但也许select有不同的范围?我尝试了一些,但找不到一个有效的.
https://codepen.io/srm985/pen/LmPvdO
$(document).on("keydown", e => {
if (e.keyCode == "17") {
$("span").text("true");
}
});
$(document).on("keyup", e => {
if (e.keyCode == "17") {
$("span").text("false");
}
});Run Code Online (Sandbox Code Playgroud)
select {
width: 250px;
height: 35px;
}
span {
color: red;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Press and hold [Ctrl]. While holding [Ctrl], click on select. The keyup event is never captured.</p>
<p>Key Down: <span>false</span></p>
<select>
<option>test1</option>
<option>test2</option>
</select>Run Code Online (Sandbox Code Playgroud)