我发现了很多相关的问题(这里和其他地方),但没有具体找到这个问题。
我正在尝试侦听箭头键(37-40)的键关闭事件,但是当以特定顺序使用箭头键时,后续箭头不会生成“keydown”事件。
示例:http://blog.pothoven.net/2008/05/keydown-vs-keypress-in-javascript.html
但是,如果我做同样的事情,但使用向下箭头键而不是向上箭头键,那么它可以按预期工作。
此外,如果我使用键盘而不是箭头键,它将按预期工作。
我正在阻止按键事件的正常操作(通过在事件侦听器中返回 false,以及通过调用 preventDefault() ),但行为仍然存在。
我以为这可能是我的键盘,但它发生在笔记本电脑和朋友的机器上。
有人对正在发生的事情有任何见解吗?或者一些关于解决方法的好主意?
[编辑]这里有一个例子来说明我的意思。我意识到这可能无法在所有的浏览器上运行,但是我只是在我的笔记本电脑上把它放在一起,来演示我正在做的事情(在w7和chrome上)
<html>
<body>
<script>
var keysDown = {};
addEventListener("keydown", function(e) {
keysDown[e.keyCode] = true;
document.getElementById('latestKeydown').value=e.keyCode;
}, false);
addEventListener("keyup",function(e){
delete keysDown[e.keyCode];
}, false);
var loop = function(){
document.getElementById('upinput').value=keysDown[38];
document.getElementById('downinput').value=keysDown[40];
document.getElementById('leftinput').value=keysDown[37];
document.getElementById('rightinput').value=keysDown[39];
}
setInterval(loop,1);
</script>
Up: <input id="upinput" type=text size=10><br />
Down: <input id="downinput" type=text size=10><br />
Left: <input id="leftinput" type=text size=10><br />
Right: <input id="rightinput" type=text size=10><br />
Recent Keydown: <input id="latestKeydown" type=text size=10><br />
</body>
</html>
同样,问题是:如果我按住A,然后S,然后D,然后F,然后G,你可以看到“最近的按键”在每次我开始握一个新的键时更新。
然而,如果我按住右箭头,然后向上箭头,然后向左箭头,我看不到“最近的Keydown”更新为左箭头键。
我不能说这方面的权威,但根据https://stackoverflow.com/a/4177260/562209的说法,除非你同时按下一个修饰键和一个非修饰键,关于多键按下“电脑可能不理解它,因为键盘是有线的”。
我试图模拟在rad grid控件(Telerik)的文本区域中按下左右箭头键。 我有一个特定于浏览器Firefox的错误,其中选项卡事件(修复了此部分)和箭头键将不起作用。所有其他浏览器工作正常。 因此,作为一种解决方法,我想使用JavaScript或jquery模拟箭头键。 下面是我使用包含的选项卡事件修复程序所做的工作。除此之外,我还检查按键代码37(这是左箭头键)是否被按下。此时,我想模拟文
我有一个内部滚动条的div组件,我想防止向上/向下箭头键在元素聚焦时滚动(鼠标单击元素),因为它们用于其他事件(例如缩放)。 我找到的唯一解决方案是将事件侦听器附加到文档,但是,它禁用所有默认的箭头键事件,例如在输入字段中移动光标。 以下是一个示例(在React中):https://codesandbox.io/s/rsc-live-example-fze6z 如何复制: 用鼠标点击内部div(有
我搜索了一个又一个,但我似乎没能抓住AndroidEditText键盘上的“箭头”键。对我来说,正是退格下方的按钮看起来像一个箭头。 我试过使用: 编辑文本: 但当我点击箭头按钮时,什么也没有打印出来。然而,这适用于键盘上的数字。我曾尝试在EditText xml中将箭头按钮更改为“完成”按钮,但这也不起作用。有人知道为什么吗?
键盘事件的种类 键盘事件由用户击打键盘触发,主要有keydown、keypress、keyup三个事件,它们都继承了KeyboardEvent接口。 keydown:按下键盘时触发。 keypress:按下有值的键时触发,即按下 Ctrl、Alt、Shift、Meta 这样无值的键,这个事件不会触发。对于有值的键,按下时先触发keydown事件,再触发这个事件。 keyup:松开键盘时触发该事件。
输入框接口 用于弹起输入框,供用户输入文字。可以通过注册监听函数进行监听用户的输入,监听完毕请及时调用注销方法,取消监听。 BK.UI.showKeyboard(Object) 显示输入框,弹出键盘 手Q版本:7.6.5 函数参数Object: 属性名 类型 是否必填 说明 deaultText string 否 默认要展示的字符串 complete Function 否 接口调用完成回调 示例:
如何在全页图像滑块中给出箭头键事件,例如下面的示例链接->https://www.htmllion.com/examples/pure-css-based-fullscreen-slider-demo.html。我需要相同的布局与箭头键事件。好心的帮助。