用于替换jQuery的keydown事件的直接JavaScript语法是什么? Lint非常抱怨我很难阅读我的Firebug控制台。
由于我只是为我开发一个概念验证,我并不担心任何跨浏览器问题 - 它现在只能在Firefox中运行。
答案 0 :(得分:2)
那是因为charCode在keydown事件中确实没有意义。如果您需要知道charCode,请将keydown事件更改为keypress事件。
答案 1 :(得分:2)
DOM Level 2事件规范 不提供关键事件模块。 设计用于的事件模块 键盘输入设备将 包含在DOM的更高版本中 说明书
因此关键事件没有标准。目前所有浏览器都按照自己的意愿行事。如果您使用的是JS框架,它应该在所有浏览器中提供一致的值(毕竟这将成为框架的主要部分)。
答案 2 :(得分:2)
首先,其他人很好地解释了你问题的根源。
但是为了记录,回答你原来的问题,你需要的是addEventListener。这是在Javascript中附加事件的非突兀,漂亮和现代的方式。适用于所有现代浏览器(因此不适用于IE9,适用于您需要的IE attachEvent)。
例如,使用addEventListener,您可以分配以下事件:
var elem = document.getElementById("fos");
elem.addEventListener("keydown", whateverFunction, false);
您也可以使用简单的方式(elem.onkeydown=whateverFunction;
),但我不鼓励您这样做。使用addEventListener,您可以为同一事件分配多个处理程序,并且您不会意外地覆盖您或库/第三方脚本分配的其他事件。
答案 3 :(得分:0)
更改
$(document).keydown(function(myEvent) {
到
document.onkeydown=function(myEvent){