JQuery超时功能

时间:2013-05-22 00:35:50

标签: javascript jquery timer timeout

我正在尝试使用jquery / javascript执行以下操作,但无法找到有关如何完成此操作的任何信息。

我想创建一个函数,在调用时,将等待2秒钟以响应用户的响应(例如按键)。如果在2秒内随时收集响应,则执行事件A,而如果没有按键2秒,则执行事件B.

function waitForInput
{
if(response within 2 second timeout?) event a executed
else if (timed out) event b executed
}

2 个答案:

答案 0 :(得分:3)

尝试这样的事情

var timeOut;

$('#input').on('keyup', function () {
    if (timeOut) {
       clearTimeout(timeOut);
       $('#div').removeClass('a');  // corresponds to Event A
    }
    timeOut = setTimeout(function () {
        $('#div').addClass('a');  // corresponds to Event B
    },1000);
    console.log(timeOut)
});

<强> Check Fiddle

答案 1 :(得分:1)

使用setTimeout来处理:

setTimeout(2000, function decide () {
    if (keyPressed) 
    {
       //do A
    } else
    { 
      // do B
    }
}