Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery热键触发太快:如何捕捉较慢的按键?_Jquery_Keypress_Keydown_Hotkeys - Fatal编程技术网

jQuery热键触发太快:如何捕捉较慢的按键?

jQuery热键触发太快:如何捕捉较慢的按键?,jquery,keypress,keydown,hotkeys,Jquery,Keypress,Keydown,Hotkeys,我使用jQuery热键插件,代码如下: $(document).bind('keydown', 'right', function(){ console.log('fired'); display_info(); }); 按下右键时,显示信息();被呼叫大约3-4次。我怎样才能让按键慢一点 谢谢 尝试按向上键而不是按向下键,或者创建计时器 这是我设计的一个快速而肮脏的计时器,它应该能让你很好地了解你需要做什么:我想添加它,以防其他人遇到这个问题。 你遇到

我使用jQuery热键插件,代码如下:

$(document).bind('keydown', 'right', function(){
        console.log('fired');
        display_info();
    });
按下右键时,显示信息();被呼叫大约3-4次。我怎样才能让按键慢一点


谢谢

尝试按向上键而不是按向下键,或者创建计时器


这是我设计的一个快速而肮脏的计时器,它应该能让你很好地了解你需要做什么:

我想添加它,以防其他人遇到这个问题。 你遇到的问题听起来和我遇到的问题一模一样。 如果我绑定了多个快捷方式事件,则每个事件的执行时间将比文档中的快捷方式绑定总数少一次。我有这样的想法:

$(document).bind('keydown', 'alt+a', function () {
    alert('A Pressed');
});
$(document).bind('keydown', 'alt+b', function () {
    alert('B Pressed');
});
$(document).bind('keydown', 'alt+c', function () {
    alert('C Pressed');
});
对于每个快捷键绑定,我都会收到两次警报。我解决这个问题的方法是解除快捷方式的绑定,并添加一个方法来处理警报和解除绑定

$(document).ready(function () {
    $(document).bind('keydown.alt+a', 'alt+a', function () {
        alertAndUnbind('A', 'alt+a');
    });
    $(document).bind('keydown.alt+b', 'alt+b', function () {
        alertAndUnbind('B', 'alt+b');
    });
    $(document).bind('keydown.alt+c', 'alt+c', function () {
        alertAndUnbind('C', 'alt+c');
    });
});
function alertAndUnbind(letter, shortcut) {
    alert(letter);
    $(document).unbind('keydown.' + shortcut, shortcut);
});

以这种方式使用“取消绑定”允许我只执行每个快捷方式的代码一次,同时每次按下快捷方式时都保留快捷方式功能,并保持代码相对干燥。

尝试了键控,但仍然触发过快。关于如何构建计时器有什么建议吗?还是javascript新手!谢谢,那不就是打了同样的电话,但是一秒钟之后吗?
$(document).ready(function () {
    $(document).bind('keydown.alt+a', 'alt+a', function () {
        alertAndUnbind('A', 'alt+a');
    });
    $(document).bind('keydown.alt+b', 'alt+b', function () {
        alertAndUnbind('B', 'alt+b');
    });
    $(document).bind('keydown.alt+c', 'alt+c', function () {
        alertAndUnbind('C', 'alt+c');
    });
});
function alertAndUnbind(letter, shortcut) {
    alert(letter);
    $(document).unbind('keydown.' + shortcut, shortcut);
});