2014-04-01 154 views
0

我有一條if語句,條件是如果numberOfFingers == 5那麼計數器將增加1,我希望計數器只有在numberOfFingers的持續時間是5時才增加1秒。 (這是與跳躍運動)這可能嗎?Javascript if語句設置時間條件

if (numberOfFingers == 5) { 
     var start = parseInt(document.getElementById('count').innerHTML); 
     var end = start+1; 
     document.getElementById('count').innerHTML = end; 
     } 
+2

嗯,什麼?究竟是什麼時間? – adeneo

+0

你的意思是表達式(numberOfFigers == 5)保持真實5秒? – webduvet

+0

@ lombausch是的,對不起,我的寫作有點不清楚! – plimbs

回答

0

看看 「的setTimeout」,並嘗試這樣的事:

if(numberOfFingers == 5) { 
    setTimeout(function(){ 
    if(numberOfFingers == 5){ //5 fingers still after 5s 
     var start = parseInt(document.getElementById('count').innerHTML); 
     var end = start+1; 
     document.getElementById('count').innerHTML = end; 
    } 
    }, 5*1000); //your 5s 
} 
+0

這會起作用,但也會捕獲'numberOfFingers'在5秒內變成其他數字然後又變回的情況。一個完全正確的實現將不得不觀察'numberOfFingers'的變化,以確保它在5秒內不會改變。我不知道這對於這個特定的實現是否重要。 –

+0

@AndrewEisenberg你是對的。 – webduvet

+0

@ lombausch感謝您的幫助,但這不是我所追求的,我覺得很難解釋!如果用戶numberOfFingers == 5我希望計數顯示1,如果用戶做了兩次我想顯示2,如果用戶做了3次我想顯示3,等等,我的問題是,與當用戶徘徊5個手指時跳躍運動,持續時間爲1至5秒,這意味着持續執行計數,因此當用戶將其左側的所有手指移開時,計數大約爲60.我想知道是否有是減少這個的方法嗎?再次感謝! – plimbs