我正在从1.4.2升级我们的应用程序的jQuery版本。 我有一大块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事件的方法签名。 谢谢!
答案 0 :(得分:1)
是。事件对象包含有关事件的所有信息。但您需要使用keyCode
和which
等属性以及此类属性手动检查F3。
例如,F3的keyCode是114.所以你会这样检查:
if(e.keyCode === 114){
//F3 is pressed
}
eventData
,您要通过'f3'
答案 1 :(得分:0)
是的,你可以检查关键属性,你应该按如下方式进行:
$(document).keydown(function( event ) {
if ( event.which == 114 ) { // 114 is the identifier for F3
//Do some stuff
event.preventDefault();
}
});