按下句点键时执行JavaScript功能

时间:2014-08-24 18:42:48

标签: javascript html

我想点一个名为“更快”的javascript函数。每当按下句号键时。我首先尝试了一种适用于其他键的方法:

document.onkeydown = function(evt) { 
  evt.preventDefault();
  evt = evt || window.event;
  switch (evt.keyCode) {
     case 190:
         faster();
          break;
   }
};

我也尝试使用代码46,但仍然没有运气。一篇帖子说Mac键盘不太可靠,建议使用onkeypress而不是onkeydown。我无法找到一个直接相关的例子,但我试过了:

的JavaScript

periodetect () {
    var c = e.which || e.keyCode;
    if (c=46) {
       faster();
    }
};

HTML

<BODY BGCOLOR="#CCCCCC" onkeypress="periodetect()">

任何人都可以发现我的初学者错误或建议替代方案吗?

2 个答案:

答案 0 :(得分:2)

这可能是您正在寻找的解决方案:
需要jquery 1.9.x或更高版本

$(document).bind('keydown',function(e){
    if(e.keyCode == 190) {
        alert("you pressed .");
    }
});

当您按下“期间键”并显示提醒时,如果您希望使用某个功能,只需将alert("you pressed .");替换为faster();

自己测试:http://jsfiddle.net/d60jtqdc/

答案 1 :(得分:0)

事实证明,keydown似乎是正确的用法。事实证明keyCode在我的答案评论中给出的OP代码中没有大写,但 在问题中正确大写。以下示例现在我已经改变了第一个。

看看这个:onKeyPress Vs. onKeyUp and onKeyDown

document.onkeydown = function(evt) { 
  evt.preventDefault();
  evt = evt || window.event;
  switch (evt.keyCode) {
     case 190:
         faster();
          break;
   }
};

编辑添加:有人可以在Mac上测试此代码吗?

<!DOCTYPE html>
<html>
<head>
<title>Stack Overflow Tester</title>
<style type="text/css">

</style>    
<script type="text/javascript">
//<![CDATA[
document.onkeydown = function(evt) { 
  evt.preventDefault();
  evt = evt || window.event;
  switch (evt.keyCode) {
     case 190:
         alert("Faster!");
          break;
   }
};
//]]>
</script>
</head>
<body>
<p>Stack Overflow Test; press the period.</p>
</body>
</html>