2014-01-06 3 views
0

Я ищу решение для сравнения нового значения, полученного из вызова API, по сравнению с ранее полученным значением. Используя CSS, я затем анимирую значение, чтобы уведомлять об использовании изменения, в настоящее время значение анимируется каждый раз, когда оно опрошено независимо от того, является ли это значение одинаковым или отличающимся.Сравнение нового значения, полученного из API, с предыдущим значением

Мое текущее решение в jQuery выглядит как показано ниже. Там находится плунмент кода here. Я сделал код как можно более простым, вместо того, чтобы опросить API, он просто опросил случайное число.

function poll(){ 
    var data = Math.floor(Math.random() * 3) + 1; 
    $("#example").addClass('animate'); 
    setTimeout(function(){ 
     $("#example").removeClass('animate'); 
    }, 2000); 

    $("#example").html(data); 
    }; 

    setInterval(poll, 3000); 
+1

Вы должны вставить фрагмент кода в вашем вопросе, так что этот вопрос остается в силе, если/когда pinkr.co dissappears или удаляет этот фрагмент. – sethcall

+0

Спасибо, только что добавили код js в вопрос. – chrisdwheatley

+1

Не забудьте кэшировать $ ("# example"), если он находится в цикле. Прости, Крис, не удержался: P –

ответ

1

Я думаю, вы могли бы хотеть, чтобы обернуть этот код в анонимной функции, так что вы можете повесить на старое значение, не загрязняя глобальный масштаб. Так что-то подобное может работать:

(function(){ 

var old = null; 

function poll() { 
    var data = Math.floor(Math.random() * 3) + 1; 

    // compare data with old here 
    if(data != old) { 
    $("#example").addClass('animate'); 
    setTimeout(function(){ 
     $("#example").removeClass('animate'); 
    }, 2000); 
    } 

    $("#example").html(data); 
    old = data; 
}; 
setInterval(poll, 3000); 

})(); 
+0

Спасибо, Пол! Это отлично работает. – chrisdwheatley

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