我正在将应用程序的 jQuery 版本从 1.4.2 升级。 我有一大块 JS,我不明白为什么它会起作用,但实际上在 1.4.2 中起作用,而在 1.4.3+ 中不起作用
$(document).bind('keydown', 'f3',
function (event) {
alert("f3");
//Do something
});
在 jQuery 1.4.2 中,此功能有效并仅触发 F3 的事件处理程序。
当我升级到 1.4.3+ 时,任何 keydown
都会触发事件处理程序(我认为这是有道理的)。
keydown
事件是否知道使用事件数据并检查按键是否被按下?
任何人都可以帮我澄清它是否有效,如果不是,为什么这段代码可以在 jQuery 1.4.2 中工作?
我检查了发行说明,唯一改变的是为绑定(bind)和 keydown
事件添加了方法签名。
最佳答案
是的。事件对象包含有关事件的所有信息。但您需要使用 keyCode
和 which
等属性以及此类属性手动检查 F3。
例如 F3 的 keyCode 是 114。因此您可以这样检查:
if(e.keyCode === 114){
//F3 is pressed
}
它可能仍然对您有用,因为现在,第二个(可选)参数是您要传递 'f3'
的 eventData
关于javascript - jQuery keydown事件事件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25488586/