jQuery热键适用于任何键,不仅适用于指定的键

时间:2011-08-25 14:43:18

标签: jquery key hotkeys

我将此代码添加到我的网站:

$(document).bind('keydown', 'i', function(){
$("#af").click();
return false;});

问题在于它适用于任何键,不仅适用于'i'。怎么了?

3 个答案:

答案 0 :(得分:1)

在您的代码中,'i'是一个传递给回调函数的参数。它对您的事件将响应的字符代码没有影响。你可以通过

来做到这一点
$(document).bind('keydown', function(e){
   if (String.fromCharCode(e.keyCode) == 'I') {
      $("#af").click();
      e.preventDefault();
   }
});

答案 1 :(得分:1)

因为jQuery Doc说:

  

event.which规范化event.keyCode和event.charCode。它是   建议观看event.which键盘输入键。更多   详情,请阅读event.charCode on the MDC

然后更好地使用

$(document).bind('keydown', function(e){
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code == 73) {   
        $("#af").click();
        return false;
    }
});

答案 2 :(得分:0)

正确的方法是:

$(document).bind('keydown', function(e){
    if (e.keyCode =='i') {   
        $("#af").click();
        return false;
    }
});