没有keydown事件检测CTRL和SHIFT键?
问题描述:
我一直在想,如果我能检测到CTRL和SHIFT键没有使用keydown事件按下。没有keydown事件检测CTRL和SHIFT键?
的原因是,我创建在JavaScript某种网格观察器,我实现通过按住CTRL 或 SHIFT 关键,因为它在最普通的观众,编辑等功能选择不同的项目。
问题是,当焦点不在页面上的任何地方。例如,我将页面添加到书签。再将我抱CTRL或SHIFT并单击该项目,但它的keydown没有被触发的正常动作。
任何省略这个的方法?也许不是,但对于那些将它视为我自己明显的Bug的客户来说,这可能会令人困惑。
答
你并不需要在所有的所有键事件检测移,按Ctrl和Alt键当鼠标点击MDN。
的事件对象包含以下信息:
element.addEventListener('click', function (e) {
console.log(e.shiftKey);
console.log(e.ctrlKey);
console.log(e.altKey);
});
这些属性也可以在键盘事件处理程序中读取。
如果他们认为它是你的错误,那是他们的错。如果他们不想关注你的页面,他们不会得到你的功能 – Ian
你也可以在'onclick'处理程序中检测这些键...... – Teemu
@Teemu好点。我不知道为什么使用'keydown'事件。一切都应该在点击点进行检查 – Ian