javascript - 执行函数后禁用某个键

标签 javascript jquery key settimeout

所以基本上我想要第一个键(“q”)来初始化setTimeouts,然后我想在setTimeouts运行时禁用它再次被按下,然后当setTimeouts结束时,重新允许再次按下。

$(document).keydown(function(e) { 
    // if 'q' key is pressed, initalize setTimeouts
    if (e.keyCode == 81) {
        var rock = $('#rock');

        // disable 'q' key while setTimeouts are running          
        setTimeout(function () {
            rock.css('background-position', '-34px -0px');
            setTimeout(function () {
                rock.css('background-position', '-66px -0px');
                setTimeout(function () {
                    rock.css('background-position', '-96px -0px');
                }, 300);
            }, 300);
        }, 300);
        // re enable 'q' key when setTimeouts are done      
    }
});

有什么想法吗?

最佳答案

在开始超时之前设置一个变量,并在超时后清除它。

var q_enabled = true;
$(document).keydown(function(e) { 
    // if 'q' key is pressed, initalize setTimeouts
    if (e.keyCode == 81 && q_enabled) {
        q_enabled = false; // Disable Q key
        var rock = $('#rock');
        setTimeout(function () {
            rock.css('background-position', '-34px -0px');
            setTimeout(function () {
                rock.css('background-position', '-66px -0px');
                setTimeout(function () {
                    rock.css('background-position', '-96px -0px')
                    q_enabled = true; // Re-enable it
                }, 300);
            }, 300);
        }, 300);
    }
});

关于javascript - 执行函数后禁用某个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25655871/

相关文章:

javascript - 在 ngrx 中链接两个 Action

jquery - 使用 jQuery 选择双击单词的所有实例

javascript - jQuery 的 getScript 方法是否有默认超时?

Android edittext 键返回到下一个文本

javascript - 向下滚动时淡入淡出的引导导航栏

javascript - 表格内容不在下方

jquery - 更改单选按钮图像,帮助

python - 从 Python 中的嵌套字典中提取键

Python:将多维字典的列表转换为字典键,并进行异常处理

javascript - 使 Facebook 插件响应