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

发布于 2024-12-01 12:49:23 字数 159 浏览 0 评论 0原文

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

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

问题是它适用于任何键,而不仅仅是“i”。怎么了?

I added this code to my site:

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

The problem is that it works with any key, not only for the 'i'. What's wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

↙厌世 2024-12-08 12:49:23

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

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

In your code, 'i' is a parameter which is passed to your callback function. It has no effect on what character codes your event will respond to. You can do that via

$(document).bind('keydown', function(e){
   if (String.fromCharCode(e.keyCode) == 'I') {
      $("#af").click();
      e.preventDefault();
   }
});
§普罗旺斯的薰衣草 2024-12-08 12:49:23

因为 jQuery Doc 说:

event.which 标准化 event.keyCode 和 event.charCode。这是
建议观看 event.which 进行键盘按键输入。了解更多
详细信息,请阅读MDC 上的 event.charCode

那么更好地使用

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

Because jQuery Doc said :

event.which normalizes event.keyCode and event.charCode. It is
recommended to watch event.which for keyboard key input. For more
detail, read about event.charCode on the MDC.

then better to use

$(document).bind('keydown', function(e){
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code == 73) {   
        $("#af").click();
        return false;
    }
});
一抹微笑 2024-12-08 12:49:23

正确的方法是:

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

The correct way to do this is:

$(document).bind('keydown', function(e){
    if (e.keyCode =='i') {   
        $("#af").click();
        return false;
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文