jQuery keydown事件事件数据

时间:2014-08-25 14:48:58

标签: javascript jquery javascript-events keydown

我正在从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事件的方法签名。 谢谢!

2 个答案:

答案 0 :(得分:1)

是。事件对象包含有关事件的所有信息。但您需要使用keyCodewhich等属性以及此类属性手动检查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();
  }
});