JQ或JS如何判断ctrl键是按下中,还未弹起的状态?

某个事件触发时,判断ctrl键是否按下中,还未弹起。

我想到的思路是:
当ctrl键按下,变量ctrl为true,
当ctrl键弹起,变量ctrl为false。

但是这样遇到个问题,使用QQ截图快捷键时,可以监听到crtl按下,却监听不到ctrl弹起,所以截图后变量ctrl还是true的状态。

有更好的办法来判断吗?

已经解决了,方法是:

//当前窗口失去焦点
window.onblur = function() {
ctrl=false;
};
截图时浏览器窗口会失去焦点,导致页面没有监听到ctrl弹起。

阅读 6.7k
2 个回答

keydown事件有一个叫ctrlKey的属性用来判断ctrl键是否被按下。

按键只有两个动作,keydown和keyup,对应按下和弹起。还有一个keypress基本可以认为是一次按键点击过程。

你这个需求的情况只能针对ctrl绑定两个事件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏