停止键重复保持。 (jQuery的)

大家好我刚拿起jQuery

所以我的问题是,当你按住它时我想要阻止一个键重复

示例:编辑(我希望它停止..所以每个按键/ keydown 1个字符)

按键:a

HoldDown:aaaaaaaaaaaaaaaaaaaaaaaaaaa

我的代码是:

 var stop= false; var time =null; $(':text').keypress(function(e) { if(stop === true){e.preventDefault();} if (time !== null) { lastkey = time; } time = new Date().getTime(); var between = time - lastkey; if (between <= 70) { stop = true; } }); $(':text').keyup(function(){stop = false;}); 

我是以错误的方式来做这件事的吗?

试试这个: http : //jsfiddle.net/maniator/yFA8c/

它每2秒只允许一个字母。

码:

 var mult = false, prev = 0; $('.mult').keydown(function(e) { if (!mult) { mult = true; prev = e.which; setTimeout(function() { mult = false; }, 2000) } else if (prev != e.which) { mult = false; } else { return false; } })​;​ 

使用.keyup()绑定而不是.keypress()

你应该使用keydown和keyup事件来代替keypress。

所以,这是一个解决方案:

 window.keypressed = {}; $('#element').keydown(function(e){ if ( window.keypressed[e.which] ) { e.preventDefault(); } else { window.keypressed[e.which] = true; }).keyup(function(e){ window.keypressed[e.which] = false; });