javascript - 为键盘"1" "2"绑定onkeydown事件后,当同时触发这两个按键时如何让按键"2失效"请帮忙解答下
PHP中文网
PHP中文网 2017-04-11 10:04:46
[JavaScript讨论组]

为键盘"1" "2"绑定onkeydown事件后,当同时触发这两个按键时如何让按键"2失效"

PHP中文网
PHP中文网

认证0级讲师

全部回复(5)
PHPz

keydown事件并不存在同时触发这种事,两个键都被按下的情况下,后按的一定会覆盖前面的一直被触发。
也许你的业务逻辑要求并不是这样,换个角度思考问题,可能有别的实现方式。

PHPz

可以用&&来限制代码执行条件,比如1&&2被按下时执行代码

黄舟

你可能要分别再绑定keyup事件,然后再弄一个变量。当任意一个keydown的时候把这个变量改成false,任意一个keyup的时候改成true。然后在keydown事件里加判断,只有变量是true的才会执行之后的内容。

巴扎黑

一楼正解,根本不存在同时按了两个键的说法,必然是你先触发了1,又触发了2,你能实现的只是不在1被按完之后立马按2,这个酒很好解决了,设定一个记录上一次按1的时间,在1的处理事件中添加每次更新这个记录时间变量的逻辑,然后在b的处理事件中先计算这次按2距离上次按1的时间差,如果足够小让你觉得是“同时按下”那就直接return,否则你继续执行原本的业务逻辑。

但是这样可能会造成问题,因为是异步事件,你这个handler执行的时候其实并不是你按的时候,但是如果你要杜绝的是快速先按1,再按2我记得两个处理函数中间不太可能插入太多的调用,所以应该还是可行的,只是这个时间得你自己选择好才可以

黄舟

在事件回调函数外命名一个作为状态的变量啊,然后触发按键的事件的时候判断,阻止掉不想要的按键事件

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号