2015-01-06 3 views
0

2 초마다 하나의 기능을 반복 할 때 조건 1 또는 2가 충족되면 카운트를 0으로 재설정하려고합니다. 어떤 시점에서 리셋을 구현할 것인가? 예를 들어;조건이 충족되면 어떻게 카운트를 재설정합니까?

var timer; 
var a = 'door'; 
var b = '';//this is set by an ajax call that fires off every second 

var count = 0; 

function condition(){ 
    //condition 1 
    if(a == 'door' && b == 'inside' && count < 30){ 
     $('#action').html('Person A'); 
     count++; 
    //after 1 minute show 1 minute sign 
    } else { 
     $('#action').html('It\'s been 1 minute'); 
     count = 31; 
    } 
    //condition 2 
    if(a == 'door' && b == 'outside' && count < 30){ 
     $('#action').html('Person B'); 
     count++; 
    //after 1 minute show 1 minute sign 
    } else { 
     $('#action').html('It\'s been 1 minute'); 
     count = 31; 
    } 
    //condition 3 
    //empty div & reset count 
    if(b == ''){ 
     $('#action').empty(); 
     count = 0; 
    } 
    //set interval 
    clearInterval(timer); 
    timer = setInterval(condition, 2000);// 2 seconds x 30 = 1 minute 
} 
condition(); 
+0

:

이되어야 하는가? 작동하지 않는 것은 무엇입니까? 얼마나 자주 아약스 전화가 발사되고, 그것이 항상 외부 나 내부로 돌아갈 것인가? 많은 잠재적 인 문제와 해결책이 있습니다. –

+0

현재로서는 액션 아이디가 비워지고 카운트가 0으로 설정됩니다. 30 회 반복 한 후 또는 다른 조건을 충족하면 카운트를 다시 시작하고 싶습니다. 아약스는 1 초마다 호출됩니다. –

답변

0

코드에는 특히 setInterval 기능이 있습니다. 함수 객체해야 첫 번째 매개 변수, 하지 함수의 invokation : 무엇을 노력하고 있습니다

setInterval(condition, 2000); 
+0

감사합니다. 잊어 버렸습니다. –

관련 문제