Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2024, 09:05
Интересующийся
Отправить личное сообщение для Димитр Посмотреть профиль Найти все сообщения от Димитр
 
Регистрация: 09.07.2024
Сообщений: 17

вывести переменную из функции
Что то неверно написал. Надо получить значение 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);
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2024, 09:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,196

Сообщение от Димитр
let result = change;
Вызов функции выглядит вот так

let result = change();
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2024, 13:18
Интересующийся
Отправить личное сообщение для Димитр Посмотреть профиль Найти все сообщения от Димитр
 
Регистрация: 09.07.2024
Сообщений: 17

Не работает. Независимо от клика все время 1.
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2024, 13:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,102

Димитр,

<!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>
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2024, 14:38
Интересующийся
Отправить личное сообщение для Димитр Посмотреть профиль Найти все сообщения от Димитр
 
Регистрация: 09.07.2024
Сообщений: 17

Да это все понятно... Спасибо !!!
Но как получить выбранный цвет за функцией? Потому что дальше будет if (flag == 1) {......} else if (flaf == 2) {} и т.д.
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2024, 16:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,102

Сообщение от Димитр
Потому что дальше будет if (flag == 1) {......} else if (flaf == 2) {} и т.д.
вставьте этот вызов в строку 30 пост #4
Ответить с цитированием
  #7 (permalink)  
Старый 10.07.2024, 09:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,196

Сообщение от Димитр
Независимо от клика все время 1.
Так клик-то будет "потом"...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вернуть переменную из функции Salvat AJAX и COMET 27 21.07.2017 08:20
Сделать переменную глобальной из ajax и функции nightcry Общие вопросы Javascript 6 18.07.2017 14:14
Передача результата функции, другой функции Aleksandr Chirkov Элементы интерфейса 3 24.06.2017 17:32
Как достать переменную из функции KamalovRadik Firefox/Mozilla 6 19.11.2011 19:09
Получить переменную из функции HackerSniper Общие вопросы Javascript 7 21.10.2011 08:30