Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   setInterval, не меняет значение глобальная переменная. (https://javascript.ru/forum/dom-window/72884-setinterval-ne-menyaet-znachenie-globalnaya-peremennaya.html)

Javany11 04.03.2018 17:22

setInterval, не меняет значение глобальная переменная.
 
Добрый день! Есть задача сделать таймер при помощи setInterval, не используя new Date() вообще. Как бы и просто, и в тоже время глобальная переменная не меняет своё значение. Подскажите почему?
var a = 0;
var intId;
	function timm(){
	a+=1; 
	console.log(a);//test
        }
        if(a <= 0 && a >10){
        clearInterval(intId);	
        }
         else {intId = setInterval(timm,1000);}

рони 04.03.2018 17:58

Цитата:

Сообщение от Javany11
время глобальная переменная не меняет своё значение

какая именно???
Цитата:

Сообщение от Javany11
(a <= 0 && a >10)

невыполнимое условие

Javany11 04.03.2018 18:07

var a = 0; если убрать условную конструкцию вообще, с вывести в консоль вне функции переменную "а" то она не меняется.

Javany11 04.03.2018 18:21

Спасибо, вопрос более не актуален. Нашел ответ.

рони 04.03.2018 18:21

Javany11,
что хотите сделать?

рони 04.03.2018 18:22

Цитата:

Сообщение от Javany11
Нашел ответ.

ок

Javany11 04.03.2018 18:24

таймер нужен, который досчитывал до 60-ти и начинал сначала. Далее эту переменную использовать для периодического изменения стилей через условные конструкции. new Date() использовать нельзя.

рони 04.03.2018 18:35

Javany11,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .red{
    font-size: 28px;
    color: #FF0000;
  }

  </style>

</head>

<body>
<div id="num">0</div>
<script>
  var a = 0, n = 60;
 function fn()
 {
   a = ++a % n;
   num.innerHTML = a ;
   if(!a) num.classList.toggle("red")
   window.setTimeout(fn, 100)  // 1000
 }
 fn()
</script>
</body>
</html>

Javany11 04.03.2018 18:56

Спасибо, у меня несколько иначе получилось, но тоже работает. Спасибо Вам за то что отзываетесь на крики помощи новичков. Плюсик поставил)


Часовой пояс GMT +3, время: 18:13.