Javascript / JQuery如何在按住键时防止函数重复执行?

假设我们有以下JQuery代码:

$(document).bind('keyup', function(e) { arrows=((e.which)||(e.keyCode)); switch (arrows){ case 37: executeMyfunction(); break; } }); 

如果用户按住左箭头键(37),则重复调用executeMyfunction()。

我怎样才能防止这种情况发生?

我以为keyup只会在key被释放但它无法工作时触发(这就是为什么我使用keyup,keydown也不起作用)。

我相信你必须解开这个事件。 我认为它不应该是keyup,而是keypress或keydown。

可能是这样的。

$(document).bind(’keydown’,function(e){

箭头=((e.which)||(e.keyCode));

开关(箭头){

案例37:

executeMyfunction();

(文档)$ .unbind( ‘的keydown’);

打破;

}};

如果要再次使用该事件,则必须在keyup上重新绑定该函数:

$(document).bind(’keyup’,function(e){

开关(箭头){

case 37:$(document).bind(’keydown’); 打破; }

})

请看: http : //api.jquery.com/unbind/

好吧,你总是可以去除对你的function的调用。 也就是说,如果您希望在事件未在短时间内触发后调用您的函数。