jquery - 禁用 keydown,直到功能完成

标签 jquery

我正在寻找一种方法来禁用所有键码,直到 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 绑定(bind) false,然后在函数完成后取消绑定(bind)?

最佳答案

声明一个变量来做到这一点怎么样?以下代码可以解决您的问题吗?

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 - 禁用 keydown,直到功能完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26654795/

相关文章:

javascript - Ajax:用新数据完全替换 div 内容

javascript - Onclick 更改脚本标签内的功能

javascript - 如何使用 javascript 验证 html 5 输入类型日期?

javascript - 在调整窗口大小时更改 html 标签结构

javascript - 检查复选框是否被选中(js/jquery)

javascript - JQuery .stopRotate 不工作

javascript - 删除具有子标题的 <td> 并制作子标题

html - .live() 处理时是否可以阻止子点击事件传播给 parent ?

javascript - 返回 javascript 函数的 true/false 值,然后根据它做一些事情

JQuery UI 日期选择器(从星期一开始几周)