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的调用。 也就是说,如果您希望在事件未在短时间内触发后调用您的函数。