为键盘"1" "2"绑定onkeydown事件后,当同时触发这两个按键时如何让按键"2失效"
为键盘"1" "2"绑定onkeydown事件后,当同时触发这两个按键时如何让按键"2失效"
你可能要分别再绑定keyup事件,然后再弄一个变量。当任意一个keydown的时候把这个变量改成false,任意一个keyup的时候改成true。然后在keydown事件里加判断,只有变量是true的才会执行之后的内容。
一楼正解,根本不存在同时按了两个键的说法,必然是你先触发了1,又触发了2,你能实现的只是不在1被按完之后立马按2,这个酒很好解决了,设定一个记录上一次按1的时间,在1的处理事件中添加每次更新这个记录时间变量的逻辑,然后在b的处理事件中先计算这次按2距离上次按1的时间差,如果足够小让你觉得是“同时按下”那就直接return,否则你继续执行原本的业务逻辑。
但是这样可能会造成问题,因为是异步事件,你这个handler执行的时候其实并不是你按的时候,但是如果你要杜绝的是快速先按1,再按2我记得两个处理函数中间不太可能插入太多的调用,所以应该还是可行的,只是这个时间得你自己选择好才可以
10 回答11.5k 阅读
2 回答3k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
keydown事件并不存在同时触发这种事,两个键都被按下的情况下,后按的一定会覆盖前面的一直被触发。
也许你的业务逻辑要求并不是这样,换个角度思考问题,可能有别的实现方式。