Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Подсчет кликов (https://javascript.ru/forum/events/80519-podschet-klikov.html)

Vahan60 16.06.2020 07:32

Подсчет кликов
 
Доброго времени суток всем.
Есть код (прилагается) для подсчета количества кликов по кнопке.
Мне надо переделать его так, чтобы:

1. число кликов не выводилось на экран;
2. количество кликов начиналось не с цифры "1", а с цифры "0";
3. после определенного количества кликов (допустим 7) подсчет должен опять начаться с "0" (и до "7") и т.д.;
4. присвоить полученное число переменной let cordI.

Подскажите, пожалуйста, как этого добиться.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title></title>
   
</head>
  
<body>

  <button type="button" onClick="clickME()">Click me</button>
    <p>Clicks: <a id="clicks">0</a></p>
	
  <script>
  
   let cordI = -1;
  
   let clicks = 0;
    function clickME() {
        clicks += 1;
        document.getElementById("clicks").innerHTML = clicks;
 }
  
  </script>
   
</body>
  
</html>

laimas 16.06.2020 09:51

Цитата:

Сообщение от Vahan60
число кликов не выводилось на экран;

<p>Clicks: <a id="clicks">0</a></p>
и
document.getElementById("clicks").innerHTML = clicks;

2, 3, 4:

let clicks = 0;

в функции оставить - cordI = ++cordI % 7;

Так нужно?

рони 16.06.2020 09:55

Vahan60,
let cordI = 0;
function clickME() {
    cordI = ++cordI % 7;
}

Vahan60 16.06.2020 11:56

Цитата:

Сообщение от laimas (Сообщение 525895)
Так нужно?

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

Так я вижу, что код работает как надо:

<script>
   let cordI = 0;
  
    function clickME() {
        cordI = ++cordI % 7;
        console.log (cordI);
 }
  </script>


А вот так - я не вижу результата:

<script>
   let cordI = 0;
  
    function clickME() {
        cordI = ++cordI % 7;
 }
   console.log (cordI);
</script>


Но мне то необходим именно второй вариант. Чтобы суметь воспользоваться значениями переменной cordI.

рони 16.06.2020 12:17

Цитата:

Сообщение от Vahan60
Но мне то необходим именно второй вариант.

js не обладает телепатией.
кто запретил вам использовать первый вариант? :)
или сформулируйте вашу задачу как-то иначе.

Vahan60 16.06.2020 12:34

Цитата:

Сообщение от рони (Сообщение 525903)
... или сформулируйте вашу задачу как-то иначе.

Сформулирую. Точнее доформулирую.

Конкретное значение переменной cordI необходимо для дальнейшей работы кода.
В зависимости cordI=1 или cordI=5 скрипт должен будет выполнять то или иное действие. Следовательно мне необходимо получить и использовать значение cordI вне функции clickME.

Как это сделать?
Ни return cordI, ни вызов функции clickME() не помогают.

laimas 16.06.2020 14:00

Цитата:

Сообщение от Vahan60
Следовательно мне необходимо получить и использовать значение cordI вне функции clickME

В функции clickME нельзя "выполнять то или иное действие"?

Vahan60 16.06.2020 15:22

Верно. Не будет. И не надо.

Дан массив:
const example = [
["red", "coral", "crimson"],
["gold", "yellow", "orange"],
["blue", "aqua", "green"],
["fuchsia", "pink", "purple"],
["gray", "white", "black"],
["gold", "yellow", "orange"],
["fuchsia", "pink", "purple"]];

Дан доступ к его элементам через 4 кнопки.
Кнопка 1 (cordI) дает доступ к [i]. Здесь используем подсчет количества кликов.
Кнопки 2, 3, 4 (cordJ) дадут доступ к [j].

Таким образом элемент массива можно записать example[cordI][cordJ].

Зачем такие сложности.
Дело в том, что кроме данного массива в скрипте еще 12 таких же (по структуре) массивов связанных с example.
Зная какой элемент массива example активен (т.е. его [i]([cordI]) и [j]([cordJ])) можно легко добраться до соответствующего элемента другого массива. С которым будут работать другие функции.

Вот поэтому то мне и необходимо, чтобы cordI был виден вне функции clickME.

laimas 16.06.2020 15:27

Цитата:

Сообщение от Vahan60
чтобы cordI был виден вне функции clickME

Он и объявлен вне ее, то есть глобально и будет доступен из других функций.

Vahan60 16.06.2020 17:24

То есть, если даже его не видно в консоли, то он все равно будет виден и сработает в другой функции?


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