在我的应用程序中,我需要处理Alt键的按下/释放事件以切换工具提示上的附加信息。然而,第一次按下Alt键时,文档失去了键盘焦点,因为它跳到了Chrome的菜单上。如果我点击文档的任何部分,它再次起作用(一次)。
我可以通过调用
我也可以处理
在我的情况下,是否有可靠地检测当前Alt键状态的方法?我真的不想改用其他键。
更新:我认为最好的解决方案是仅当工具提示处于活动状态时才调用
我可以通过调用
preventDefault
来避免这种情况,但这也会禁用键盘快捷键,如Alt +左/右箭头,这是不可取的。我也可以处理
mousemove
和检查altKey
标志,但当鼠标移动时才更新东西时看起来非常笨拙。在我的情况下,是否有可靠地检测当前Alt键状态的方法?我真的不想改用其他键。
更新:我认为最好的解决方案是仅当工具提示处于活动状态时才调用
preventDefault
。 document.addEventListener("keydown", (e) => {
if (this.curComponent) e.preventDefault();
if (e.which === 18) {
this.outer.classList.add("AltKey");
}
});
document.addEventListener("keyup", (e) => {
if (this.curComponent) e.preventDefault();
if (e.which === 18) {
this.outer.classList.remove("AltKey");
}
});