2015-01-06 4 views
0

Я пытаюсь сбросить счет до 0, когда условия 1 или 2 выполняются при каждом переходе через одну функцию каждые 2 секунды. В какой момент я бы выполнил сброс. Например;Как сбросить счетчик при выполнении условия?

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

Что работает? Что не работает? Как часто срабатывает вызов ajax, и гарантируется ли, что он всегда будет возвращаться наружу или внутри? Существует много потенциальных проблем и решений. –

+0

В настоящее время, как и сейчас, идентификатор действия освобождается, а счетчик равен 0. Я хотел бы, чтобы он начинал отсчет снова через 30 итераций или когда он отвечал другому условию. Ajax вызывается каждую секунду. –

ответ

0

Есть что-то с вашим кодом, в частности, для функции setInterval. Первый параметр должен быть объект функции, НЕ invokation функции:

Должно быть так:

setInterval(condition, 2000); 
+0

спасибо, забыли об этом. –

Смежные вопросы