我正在寻找一种方法来禁用所有键代码,直到next()功能完成。

我尝试使用return false,但是没有用。

nextDown = {};
    $(document).keydown(function(event){
        if(event.keyCode == '39'){
            if (nextDown['39'] == null) {
                next();
                nextDown['39'] = true;
            }
        }
    });
    $(document).keyup(function(event) {
        nextDown[event.keyCode] = null;
    });


有没有办法对keydown绑定false,然后在函数完全取消绑定之后呢?

最佳答案

声明一个变量怎么办呢。以下代码可以解决您的问题吗?

nextDown = {};
var _lock = false;
    $(document).keydown(function(event){
        if(event.keyCode == '39'){
            if (!_lock && nextDown['39'] == null) {
                _lock = true;
                next();
                nextDown['39'] = true;
            }
        }
    });
    $(document).keyup(function(event) {
        nextDown[event.keyCode] = null;
    });


    function next() {
        ...
        _lock = false;
    }


如果没有,请提供一个jsfiddle示例

关于jquery - 在功能完成之前禁用按键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26654795/

10-10 03:34