9

我一直想知道是否可以在不使用 keydown 事件的情况下检测CTRL并按下键。SHIFT

原因是我在 JavaScript 中创建了某种网格查看器,并且我实现了通过按住CTRLSHIFT键来选择不同的项目,因为它在大多数常见的查看器、编辑器等中起作用。

问题是当焦点不在页面上的任何地方时。例如,我将页面添加到书签。然后我按住CTRLorSHIFT并单击该项目,但它通常作为 keydown 没有被触发。

有什么办法可以省略吗?也许不是,但对于将其视为我自己的明显错误的客户来说,这可能会让人感到困惑。

4

1 回答 1

18

你根本不需要任何关键事件来检测,Shift当鼠标被点击时MDNCtrlAlt

Event 对象包含以下信息:

element.addEventListener('click', function (e) {
    console.log(e.shiftKey);
    console.log(e.ctrlKey);
    console.log(e.altKey);
});

jsFiddle 的演示

这些属性也可以在键盘事件处理程序中读取。

于 2013-08-19T15:06:24.190 回答