2015-03-18 7 views
-2

http://jsfiddle.net/75pxp9ms/5/Javascript, если оператор не работает

В JSfiddle я выше, им просят его изменить текст ид «текст», когда переменная счетчика находится под и над десять, но это не кажется, работало, задавалось вопросом, может ли кто-нибудь помочь мне! Это, вероятно, на самом деле легко исправить, но им достаточно новое для JavaScript так что простите меня, плохо получить повесить его

благодаря

var counter = 0; 
var value = 1; 
var spin = document.getElementById("var"); 
var lol = document.getElementById("text"); 

setInterval(function() { 
    counter += value; 
    spin.innerHTML = counter; 

}, 1000); 

if (counter > 10) { 
    lol.innerHTML = "WOW YOU REALLY LOVE KEVIN XO" 
} 

редактировать: Извините за дублированный пост и спасибо за помощь, ребята!

+0

Интервал является асинхронным, он обновляет счетчик в более позднее время, в то время как оператор if проверяется прямо сейчас, а не позже, когда значение обновляется. – adeneo

+2

Вы выполняете инструкцию 'if' до того, как' counter' будет постоянно увеличиваться. –

ответ

2

Ваш if выполняется только один раз, когда counter является 0.

Если вы хотите, чтобы выполнить несколько раз, вы должны поместить внутри setInterval обратного вызова.

1

К моменту завершения вашего setInterval, оператор if уже был оценен. Лучшее решение:

var counter = 0; 
var value = 1; 
var spin = document.getElementById("var"); 
var lol = document.getElementById("text"); 

setInterval(function() { 
    counter += value; 
    spin.innerHTML = counter; 
    if (counter > 10) { 
     lol.innerHTML = "WOW YOU REALLY LOVE KEVIN XO" 
    } 

}, 1000); 
Смежные вопросы