Javascript/JQuery如何防止在按住键时重复执行函数?
假设我们有以下JQuery代码:Javascript/JQuery如何防止在按住键时重复执行函数?,javascript,jquery,keypress,jquery-events,onkeyup,Javascript,Jquery,Keypress,Jquery Events,Onkeyup,假设我们有以下JQuery代码: $(document).bind('keyup', function(e) { arrows=((e.which)||(e.keyCode)); switch (arrows){ case 37: executeMyfunction(); break; } }); 如果用户按下左箭头键(37),则重复调用executeMyfuncti
$(document).bind('keyup', function(e) {
arrows=((e.which)||(e.keyCode));
switch (arrows){
case 37:
executeMyfunction();
break;
}
});
如果用户按下左箭头键(37),则重复调用executeMyfunction()
我怎样才能防止这种情况发生
我认为只有当按键被释放但不起作用时,
keyup
才会触发(这就是为什么我使用keyup
;keyup
也不起作用)。我相信你必须解除该事件的绑定。我认为不应该是keyup
,而是keypress
或keydown
可能是这样的
$(document).bind('keydown', function(e) {
arrows=((e.which)||(e.keyCode));
switch (arrows){
case 37:
executeMyfunction();
$(document).unbind('keydown');
break;
}
});
如果要再次使用事件,必须在键控
上重新绑定函数:
$(document).bind('keyup', function(e) {
switch (arrows){
case 37:
$(document).bind('keydown');
break;
}
})
看看:
我认为你必须解开这件事。我认为不应该是
keyup
,而是keypress
或keydown
可能是这样的
$(document).bind('keydown', function(e) {
arrows=((e.which)||(e.keyCode));
switch (arrows){
case 37:
executeMyfunction();
$(document).unbind('keydown');
break;
}
});
如果要再次使用事件,必须在键控
上重新绑定函数:
$(document).bind('keyup', function(e) {
switch (arrows){
case 37:
$(document).bind('keydown');
break;
}
})
看看:
好吧,你可以随时调用你的函数。也就是说,如果希望在短时间内未触发事件后调用函数 好吧,你可以随时调用你的函数。也就是说,如果希望在短时间内未触发事件后调用函数 你可以设置一个jsfiddle.net来显示这一点吗?这对我来说是正常的:@loannis-Hm,你的TAB键必须被打破
:)
@loannis-Afaik,keydown和keypress会重复启动,keypup不会。@loaniss你的箭头
变量必须被声明!你可以设置一个jsfiddle.net来显示这一点吗?这对我来说是正常的:@loannis-Hm,你的TAB键必须被打破:)
@loannis-Afaik,keydown和keypress会重复启动,keypup不会。@loaniss你的箭头
变量必须被声明!看看这个问题,这是同样的问题,我也使用ubuntu看看这个问题,这是同样的问题,我也使用ubuntu