2

我正在使用 JavaScript 和 jQuery,并且想在用户释放 Shift 键时调用一个函数。我想出的代码适用于我迄今为止测试过的所有浏览器,但是使用 Firefox 3.5.7 的错误控制台中会出现以下警告。我试过 jQuery 1.2.6、1.3.2 和 1.4.1。

警告:不应使用 keyup 事件的 'charCode' 属性。值是没有意义的。

我在谷歌上搜索了这个警告,但找不到关于如何防止它发生的明确答案。这是我正在使用的代码,有人有什么建议吗?

$(document).ready(
  function() {
    $(document).keyup(function(e) {
      if(e.keyCode == 16) {
        alert("Do something...");
      }
    });
  }
);
4

3 回答 3

2

你不能使用 jQuery。没有它这很简单:

document.onkeyup = function(evt) {
    evt = evt || window.event;
    if (evt.keyCode == 16) {
        alert("Shift");
    }
};

请注意,某些较旧的浏览器(3.1 版之前的 Safari,1.0 版之前的 Firefox)不会触发keyup修改键(例如 Shift)的事件。

于 2010-02-14T12:14:21.227 回答
0

charCode 可能被 jQuery 使用(因为你没有使用它)。在这种情况下,您不应该真正关心错误消息。

于 2010-02-14T11:59:23.953 回答
0

您还需要考虑跨浏览器问题,请参阅此处的跨浏览器解决方案:

http://cross-browser.com/x/examples/shift_mode.php

于 2010-02-14T12:17:51.560 回答