@boga-net

Как изменить глобальную переменную?

$('.arrow') - класс кнопок. Есть глобальная переменная clickCount . При клике на любую из кнопок, меняется значение clickCount . Нужно сделать счётчик нажатий. После нажатия на кнопки, у неё должно меняться значение, равное кол-ву нажатых кнопок. Эта переменная будет использоваться на протяжении всего кода, в условиях и функциях.

<div class="arrows">
  <div class="arrow arrow-up" id="arrow-up">up</div>
  <div class="arrow arrow-left" id="arrow-left">left</div>
  <div class="arrow arrow-down" id="arrow-down">down</div>
  <div class="arrow arrow-right" id="arrow-right">right</div>
</div>


var clickCount = 0;

$('.arrow').on('click', function() {
	clickCount = clickCounter();
});

function clickCounter() {
	return clickCount += 1;
}

function fuc2() {
	if (clickCount == 2)
		function() {}
}
function fuc2() {
	if (clickCount == 2)
		function() {}
}
function fuc3() {
	if (clickCount == 2)
		function() {}
}


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

Пожалуйста, не предлагайте синтаксис js - только jQuery. Спасибо за понимание и помощь
  • Вопрос задан
  • 2850 просмотров
Решения вопроса 2
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Область видимости не при чем:
https://codepen.io/wokster/pen/NMVLyz
Вы просто вывели данные, когда там был 0. Что бы увидеть изменения их надо вывести после изменений. Вы думаете, что console.log(clickCount); не просто вывел значение переменной, но и будет следить за ее изменением?
Ответ написан
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
что то какой-то бред, который умещается в 5 строк растянули на целую страницу. еще и функцию отдельную прям для инкремента...
var clickCount = 0;

$('button').on('click', function() {
  clickCount++
  if (clickCount == 2) {
  	console.log('Что-то делать, при определённом количестве нажатий на кнопку')
  }
  $('span').text(clickCount);
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Tizi
@Tizi
гуру программист ( no )
Я реализовал это так ))) Клик
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Костыль, комментариями ТС навеяло.
Сделать по таймеру функцию, проверяющую постоянно состояние переменной:
var clickCount = 0;

$('.arrow').on('click', function(){console.log( ++clickCount);});

function update(){
	var previous = clickCount;
  setInterval(function(){
  	if( clickCount === previous) return;
    previous = clickCount;
    if( clickCount === 1) {
      console.log('С почином!');
    } else if( clickCount === 2) {
      console.log('Парочка!');
    } else if( clickCount === 4) {
      console.log('Квадроцикл');
    } else if( clickCount > 5) {
      console.log('Да хватит уже..');
    }
  }, 100);
}

update();


фиддл
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы