Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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绑定键向上/向下事件_Javascript_Javascript Events - Fatal编程技术网

Javascript绑定键向上/向下事件

Javascript绑定键向上/向下事件,javascript,javascript-events,Javascript,Javascript Events,如何将函数绑定到键向下/向上事件 它可以绑定到整个文档,也可以绑定到单个元素,在这种情况下两者都可以 这必须没有任何JavaScript库。我只关心最新的Firefox。特别是canvas元素 我试过:(FF 3.6.9 Windows 7) 试验 var el=document.getElementById(“游戏”); el.onkeydown=功能(evt){ evt=evt | | window.event; 警报(“按下键:+evt.keyCode”); }; el.onkeyup=

如何将函数绑定到键向下/向上事件

它可以绑定到整个文档,也可以绑定到单个元素,在这种情况下两者都可以

这必须没有任何JavaScript库。我只关心最新的Firefox。特别是canvas元素

我试过:(FF 3.6.9 Windows 7)


试验
var el=document.getElementById(“游戏”);
el.onkeydown=功能(evt){
evt=evt | | window.event;
警报(“按下键:+evt.keyCode”);
};
el.onkeyup=功能(evt){
evt=evt | | window.event;
警报(“键控:+evt.keyCode”);
};

关键事件仅对可能接收焦点的文档和元素触发。因此,要处理
元素上的关键事件,您需要通过添加
tabindex
属性(例如
)或简单地处理整个文档的关键事件来允许它接收焦点,这可能不是您想要的(例如,如果页面上有多个要处理关键事件的元素)

关于如何附加事件处理程序,最简单的方法如下:

var el = document.getElementById("your_element_id");

el.onkeydown = function(evt) {
    evt = evt || window.event;
    alert("keydown: " + evt.keyCode);
};

el.onkeyup = function(evt) {
    evt = evt || window.event;
    alert("keyup: " + evt.keyCode);
};

如果您可能需要多个侦听器,您可以在大多数浏览器中使用
addEventListener
,或者在IE中使用
attachEvent
,这是因为
元素默认情况下无法接收焦点。您有两种选择:您可以向画布标记添加
tabindex
属性以允许它接收焦点,或者您可以附加改为使用
文档
的关键事件处理程序。您能告诉我上面代码中的
evt
是什么吗?这是否仅仅意味着如果触发其他类型的事件,可以触发
var el = document.getElementById("your_element_id");

el.onkeydown = function(evt) {
    evt = evt || window.event;
    alert("keydown: " + evt.keyCode);
};

el.onkeyup = function(evt) {
    evt = evt || window.event;
    alert("keyup: " + evt.keyCode);
};
if (typeof el.addEventListener != "undefined") {
    el.addEventListener("keydown", function(evt) {
        alert("keydown: " + evt.keyCode);
    }, false);
} else if (typeof el.attachEvent != "undefined") {
    el.attachEvent("onkeydown", function(evt) {
        alert("keydown: " + evt.keyCode);
    });
}