如果事件没有发生的替代操作javascript / jquery

时间:2014-04-25 00:03:06

标签: javascript jquery keypress

我有一个可能非常简单的问题,但没有找到任何关于此问题,或者可能没有为我的问题找到合适的词语。

如果要在keypress上执行一个函数,它也会改变我的变量A - fine,并且它可以工作。 但是现在我想为我的变量A提供一个替代值,如果没有发生按键事件。

所以我正在为

的天真逻辑寻找正确的命令
if ("keypress event happens") {
  A = 1
} else {
  A = 2
} 

有没有办法在js或jquery中对密钥事件进行简单的真/假检查? 我一直在尝试和尝试,但它没有工作过一次。

1 个答案:

答案 0 :(得分:2)

通常,解决此问题的方法是使用setTimeout()。您将计时器设置为N秒。如果按键发生,则取消定时器。如果按键没有发生,计时器将触发您的备用事件。

你可能会把它包装在某种你可以随时触发的功能中,但你没有分享整体上下文,所以这只是一般的想法:

$("#myObj").keypress(function(e) {
    if (timer) {
        clearTimeout(timer);
    }
    // process key
});

var timer = setTimeout(function() {
    timer = null;
    // key didn't happen within the alltoted time so fire the alternate behavior
}, 5000);