在没有keydown事件的情况下检测CTRL和SHIFT键? [英] Detect CTRL and SHIFT key without keydown event?

查看:200
本文介绍了在没有keydown事件的情况下检测CTRL和SHIFT键?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've been wondering if I can detect CTRL and SHIFT key being pressed WITHOUT using keydown event.

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

The reason is that I am creating some sort of Grid Viewer in JavaScript, and I implemented selecting different items by holding CTRL or SHIFT key as it functions in most common viewers, editors and so on.

问题在于焦点不在页面的任何位置。例如,我正在向书签添加页面。然后我按住 CTRL SHIFT 并点击该项目,但是当keydown没有被触发时它会正常运行。

The problem is that when the focus is not anywhere on the page. For example I'm adding page to the bookmarks. Then I hold CTRL or SHIFT and click on the item, but it acts normally as keydown hasn't been triggered.

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

Any way of omitting this? Perhaps not, but it can be confusing for customers who will treat it as my own obvious Bug.

推荐答案

你不需要任何关键事件,当点击鼠标 Shift , Ctrl Alt .mozilla.org / zh-CN / docs / Web / Reference / Events /点击rel =noreferrer> MDN

You don't need any key events at all to detect Shift, Ctrl and Alt when mouse is clickedMDN.

Event对象包含以下信息:

The Event object contains this information:

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

jsFiddle上的演示

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

These properties can be read also in keyboard event handlers.

这篇关于在没有keydown事件的情况下检测CTRL和SHIFT键?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆