jQuery keydown:等待上一个事件完成

时间:2013-08-13 18:32:46

标签: jquery keydown

我们正在为我们的网站使用以下jQuery代码:

$(document).keydown(function (x) {
    if (x.keycode == 9) {
        // perform some action
    }
})

然而,它目前的工作方式是,当您快速连续按下此键时,操作不会连续执行,而是忽略任何按键,直到当前操作完成。我们希望这样做,以便任何额外的按键排队,并且在动作期间进行的任何按键操作都会导致动作也被执行,但仅在执行动作的最后一次迭代之后。

因此,例如,如果您按键9次,则无论是否在按键期间执行操作,操作都会执行9次。我现在拥有它的方式是你可以按键9次,但只有n< = 9才会执行n次操作,因为在执行操作时没有识别按键。

有什么想法吗?

编辑:根据亨特的说法,我需要使用某种队列来排列按键排队......我该如何处理呢?

1 个答案:

答案 0 :(得分:2)

var inProgress = false;

$(document).keydown(function (x) {
    if (x.which == 9) {
        if (!inProgress)
        {
            inProgress = true;
            // perform some action
            inProgress = false;
        }
    }
})