Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   вывести переменную из функции (https://javascript.ru/forum/events/85976-vyvesti-peremennuyu-iz-funkcii.html)

Димитр 09.07.2024 09:05

вывести переменную из функции
 
Что то неверно написал. Надо получить значение flag, но все время 0 в консоли.

const elem = document.querySelector('.big');
let flag = 0;

const change = () => {
const colors = ["red", "yellow", "green"]

elem.style.background = colors[flag]

elem.className = `big ${colors[flag]}`

flag = (flag + 1) % colors.length

return flag;
}


elem.addEventListener('click', change);

let result = change;
console.log(flag);

ksa 09.07.2024 09:39

Цитата:

Сообщение от Димитр
let result = change;

Вызов функции выглядит вот так

let result = change();

Димитр 09.07.2024 13:18

Не работает. Независимо от клика все время 1.

рони 09.07.2024 13:58

Димитр,
:-?
<!DOCTYPE HTML>
<html>
<head>
    <title>Untitled</title>
    <style type="text/css">
        .big {
            width: 200px;
            height: 200px;
        }
        .red {
            background-color: red;
        }
        .yellow {
            background-color: yellow;
        }
        .green {
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="big">click me</div>
    <script>
        const elem = document.querySelector('.big');
        let flag = 0;
        const change = () => {
            const colors = ["red", "yellow", "green"]
            elem.className = `big ${colors[flag]}`
            flag = (flag + 1) % colors.length
            console.log(flag);
            return flag;
        }
        elem.addEventListener('click', change);
    </script>
</body>
</html>

Димитр 09.07.2024 14:38

Да это все понятно... Спасибо !!!
Но как получить выбранный цвет за функцией? Потому что дальше будет if (flag == 1) {......} else if (flaf == 2) {} и т.д.

рони 09.07.2024 16:19

Цитата:

Сообщение от Димитр
Потому что дальше будет if (flag == 1) {......} else if (flaf == 2) {} и т.д.

вставьте этот вызов в строку 30 пост #4

ksa 10.07.2024 09:40

Цитата:

Сообщение от Димитр
Независимо от клика все время 1.

Так клик-то будет "потом"... :)


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