使用JavaScript捕获Shift键活动

时间:2010-02-14 11:56:37

标签: javascript jquery javascript-events keyboard-events

我正在使用JavaScript和jQuery,并希望在用户释放Shift键时调用一个函数。我提出的代码适用于我到目前为止测试的所有浏览器,但是使用Firefox 3.5.7在错误控制台中出现以下警告。我已经尝试过jQuery 1.2.6,1.3.2和1.4.1。

  

警告:不应使用keyup事件的'charCode'属性。这个价值毫无意义。

我在Google上搜索了此警告,但无法找到关于如何防止它发生的明确答案。这是我正在使用的代码,是否有人有任何建议?

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

3 个答案:

答案 0 :(得分:2)

你无法使用jQuery。没有它,这很简单:

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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