2014-04-01 108 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