2013-05-22 61 views
0

我想使用jquery/javascript來做以下事情,但在找到關於如何完成它的任何信息時遇到了困難。JQuery超時函數

我想創建一個函數,當被調用時,將等待2秒鐘的響應來自用戶(例如按鍵)。如果在2秒內隨時收集到響應,則執行事件A,如果沒有按下按鍵2秒,則執行事件B.

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

使用['setTimeout'(https://開頭開發商。 mozilla.org/en-US/docs/Web/API/window.setTimeout)。 –

回答

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

使用的setTimeout來處理這個問題:

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