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;
});