假设我们有以下JQuery代码:
$(document).bind('keyup', function(e) {
arrows=((e.which)||(e.keyCode));
switch (arrows){
case 37:
executeMyfunction();
break;
}
});
如果用户按住左箭头键(37),则重复调用executeMyfunction()。
如何防止这种情况发生?
我认为只有在密钥被释放但它无法工作时才会触发密钥(这就是为什么我使用密钥,keydown也不起作用)。
答案 0 :(得分:1)
我相信你必须解开这个事件。我认为它不应该是keyup,而是keypress或keydown。
可能是这样的。
$(document).bind('keydown',function(e){
箭头=((e.which)||(e.keyCode));
开关(箭头){
案例37:
executeMyfunction();
(文档)$ .unbind( 'KEYDOWN');
中断;
} });
如果要再次使用该事件,则必须在keyup上重新绑定该功能:
$(document).bind('keyup',function(e){
开关(箭头){
案例37: (文档)$ .bind( '的keydown'); 打破; }
})
答案 1 :(得分:0)
嗯,您可以随时debounce调用您的函数。也就是说,如果您希望在事件未在短时间内触发后调用您的函数。