Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跟踪第一次按键事件_Javascript_Keypress - Fatal编程技术网

Javascript 跟踪第一次按键事件

Javascript 跟踪第一次按键事件,javascript,keypress,Javascript,Keypress,出于某些原因,我不得不依赖于按键,而不是keydown/keydup按键在按键时重复触发事件。如何仅跟踪第一次按键 对于keydown/keyup来说,这不是问题,因为有一个专用的keyup事件。但按键的情况并非如此,请检查事件()的“repeat”属性 如果它为假,那么它是第一个事件,否则为真 使用jquery的示例: $("#someid").on("keypress", function(e){ if(!e.originalEvent.repeat){console.log("fi

出于某些原因,我不得不依赖于
按键
,而不是
keydown/keydup
<代码>按键在按键时重复触发事件。如何仅跟踪第一次按键


对于
keydown/keyup
来说,这不是问题,因为有一个专用的
keyup
事件。但按键的情况并非如此,请检查事件()的“repeat”属性

如果它为假,那么它是第一个事件,否则为真

使用jquery的示例:

$("#someid").on("keypress", function(e){
    if(!e.originalEvent.repeat){console.log("first keypress")};
})
“repeat”属性在Safari中确实不起作用。它只在基于Gecko的浏览器中可用。作为替代,请尝试以下方法(如果您绝对必须使用“按键”而不是其他选项):


标签[]真的与这个问题相关吗?如果没有,请将其删除。此示例不适用于多个密钥!按下
键的原因是类似
的字符-如何独立于用户键盘检测此类字符?实际上,此示例适用于多个键。它将确保您不会连续按同一个键两次。这不是你想要的吗?
var lastCode = -1;
$("#someid").on("keypress", function(e) {
  var code = e.keyCode || e.which;
  if (lastCode !== code) {
    // do something
  }
  lastCode = code;
});