Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过document.getElementById(";BtnID";)调用onclick/button pressed效果。单击()_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何通过document.getElementById(";BtnID";)调用onclick/button pressed效果。单击()

Javascript 如何通过document.getElementById(";BtnID";)调用onclick/button pressed效果。单击(),javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试创建屏幕键盘。 我已经添加了按钮,并用键盘键绑定了这些按钮。因此,用户可以单击页面上的按钮来键入或使用实际的物理键盘。JavaScript: document.onkeydown = function (e) { e = e || window.event; switch (e.which || e.keyCode) { case 65: document.getElementById("A").click(); break;

我正在尝试创建屏幕键盘。

我已经添加了按钮,并用键盘键绑定了这些按钮。因此,用户可以单击页面上的按钮来键入或使用实际的物理键盘。

JavaScript:

 document.onkeydown = function (e) {
        e = e || window.event;
        switch (e.which || e.keyCode) {
            case 65: document.getElementById("A").click();  break;
            case 83: document.getElementById("S").click();  break;
            case 68: document.getElementById("D").click();  break;
        }
 }

HTML:

<button class="button" type="button" onclick="Print('A')" id="A">A</button>
<button class="button" type="button" onclick="Print('S')" id="S">S</button>
<button class="button" type="button" onclick="Print('D')" id="D">D</button>
A
s
D

一切正常,问题是当我用物理键盘打字时,按键效果没有显示出来。document.getElementById(“某物”).click()似乎没有发挥按键效果。屏幕上的按钮保持静止。如果我用鼠标按下按钮,按钮按下效果会非常好。

请看以下图片:


您可以使用jQuery API中的
.keypress()

我会解决css样式的问题

Print=功能(按钮){
button.className='按钮处于活动状态';
setTimeout(函数(){button.className='button';},500);
log(button.innerHTML);
}
document.onkeydown=函数(e){
e=e | | window.event;
var key=(e.which | e.keyCode),
按下={65:'A',83:'S',68:'D'};
如果(按下[键]=“未定义”的类型)
返回;
document.getElementById(按[键])。单击();
}
.button.active{
背景:#333;
颜色:#FFF;
}
A
s

D
谢谢您的回复。这很有效。但现在我已经改变了我的css一点。现在我有了
.button{…}
,`.button:after{…}`和
.button:active:after{…}
,我如何调整我的代码,使其在按键盘键时发挥效果?请参阅以下内容,以避免使用伪类“:active”。。始终使用真正的css类(f.E:'.button.active:after),并在每个事件上更改button类。(按键、点击等)你知道我的意思吗?最美好的祝福