首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当按下cmd键时,不会触发任何其他键的密钥。

当按下cmd键时,不会触发任何其他键的密钥。
EN

Stack Overflow用户
提问于 2018-05-25 02:39:14
回答 2查看 0关注 0票数 0

我正在开发一个应用程序,当用户按下特定文本框上的CMD+时,我需要做一些后处理。我要做这个浏览器的默认功能(即在将插入符号置于当前物理行的第一个位置之后)。

问题是keyup只要cmd键被按下,左键(或该事项的任何键)就会被触发。

我用Shift键尝试了这一点,并发现对辅助键来说,keyup是按预期触发的。因此,如果执行Shift+左,然后释放Shift,将得到4个事件,2个按键和2个按键。然而,对于CMD键,我们得到了2个按键,但是只有一个键事件(当我们在最后释放它时,CMD键本身的一个键事件)。

实质上:

代码语言:txt
复制
$('#mytextbox')

    // this gets correctly triggered for the meta key as well as the secondary key
    // when you press CMD and LEFT in sequence, you get two lines in the console one for 
    // the CMD key and one for the LEFT key
    .keydown(function(_e) {
        console.log('Keydown: ' + _e.keyCode);
    })

    // however, if I release the LEFT key (while keeping the CMD key down)
    // this does NOT get triggered for the LEFT key
    .keyup(function(_e) {
        console.log('Keyup: ' + _e.keyCode);
    });
EN

回答 2

Stack Overflow用户

发布于 2018-05-25 11:36:22

可以考虑自己实现默认的浏览器行为,然后实现所需的自定义行为,然后用_e.preventDefault();

票数 0
EN

Stack Overflow用户

发布于 2018-05-25 11:48:10

当我做cmdspace时,我甚至没有得到空间的按键事件,因为聚光灯窗口出现了。

在提到ctrl键时:因为我在ctrllist或ctrlright时设置了“space”,所以不会触发左或右按键事件,但是ctrlup或ctrldown至少会触发它们的按键事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档