我一直想知道是否可以在没有使用keydown事件的情况下检测到 CTRL 和 SHIFT 键。
原因是我在JavaScript中创建了某种Grid Viewer,并且我通过按住 CTRL 或 SHIFT 键来实现选择不同的项目,因为它在最常见的情况下起作用观众,编辑等。
问题在于焦点不在页面的任何位置。例如,我正在向书签添加页面。然后我按住 CTRL 或 SHIFT 并单击该项目,但是当keydown没有被触发时它会正常工作。
有什么方法可以省略吗?也许不是,但对于将其视为我自己明显的Bug的客户而言,这可能会令人困惑。
答案 0 :(得分:17)
单击鼠标时,您根本不需要任何关键事件来检测 Shift , Ctrl 和 Alt {{ 3}}
Event对象包含以下信息:
element.addEventListener('click', function (e) {
console.log(e.shiftKey);
console.log(e.ctrlKey);
console.log(e.altKey);
});
这些属性也可以在键盘事件处理程序中读取。