使用`Command/Ctrol + 左键点击`的方式触发一个事件,请问应该如何写呢?

对Button创建一个左键点击事件可以如下:

<Button
  onClick = {() => {
    console.log(123)
  }}
>按钮</Button>

请问下,我想要使用Command/Ctrol + 左键点击的方式触发一个事件,请问应该如何写呢?

阅读 3.7k
3 个回答
window.keys = new Set();
document.addEventListener("keydown", function (event) {
    window.keys.add(event.key);
});
document.addEventListener("keyup", function (event) {
    window.keys.delete(event.key);
});
document.addEventListener("click", function (event) {
    if (
        window.keys.size == 1 &&
        (window.keys.has("Control") || window.keys.has("Meta")) &&
        event.button === 0
    )
        console.log(2233);
});

改了一下,可能会多个按键同时按下,用 set 记录

监听键盘事件,比如说提交表单或者确认通过键盘操作会很方便,有时候需要组合键比如复制粘贴等。基本原理是当按下某一个键时,返回对应的值,然后再判断用户按下了哪个键,进行对比。

一、键盘监听是直接在整个页面文档上进行监听的,也就是document上,以下是原生的使用案例:

1、某个键按下事件:onkeydown
2、某个键被按下或者按住:onkeypress
3、某个按下的键被松开:onkeyup
你可以打印Command的键值,然后进行判断。然后通过click与onkeypress事件,一起判断组合键事件

document.onkeydown=function(e){    //对整个页面监听  
var keyNum=window.event ? e.keyCode :e.which;       //获取被按下的键值  
//判断如果用户按下了回车键(keycody=13)  
if(keyNum==13){  
    alert('您按下了回车');  
}  
 
//判断如果用户按下了空格键(keycode=32),  
if(keyNum==32){  
    alert('您按下了空格');  
}  
 
//判断如果用户按下了Shift键(keycode=32)和回车键(keycody=13)  
if (13 == e.keyCode && e.shiftKey){
    alert('您按下了Shift和回车');  
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题