1 / 1 / 0
Регистрация: 25.12.2021
Сообщений: 25

Как повесить функцию,которая будет изменять цвет при клике по блоку,а таких блоков 5? Нужно перебрать эти блоки циклом?

04.02.2025, 22:07. Показов 1178. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как повесить функцию,которая будет изменять цвет при клике по блоку,а таких блоков 5?
Нужно перебрать эти блоки циклом? И что с эвентом?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
let maket = document.getElementsByClassName("maket");
 
let children = maket.childNodes;
console.log(maket);
 
 
for (var i = 0; i < children.length; ++i) {
 
    let children=children[i];
 
 
    children.addEventListener('click',color);
  
}
 
  function color(e){
 
        this.style.backgroundColor = "orange"; 
       
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.02.2025, 22:07
Ответы с готовыми решениями:

При клике на блок с определенным цветом менялся цвет header который на блоке (Таких блоков 5)
при клике на блок с определенным цветом менялся цвет header который на блоке (Таких блоков 5)

Как сделать так, чтобы при клике на элемент меню появлялся нужный блок и исчезал ненужный?
У меня есть список-меню .sidebar-menu и каждый li этого списка имеет свой id. Так же имеется блок .services-info, где находятся блоки, один...

Как изменить цвет блока по клику
Имеется файл index.php: &lt;!DOCTYPE html&gt; &lt;html lang=&quot;en&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; &lt;meta name=&quot;viewport&quot;...

3
 Аватар для voraa
1276 / 1241 / 185
Регистрация: 21.01.2024
Сообщений: 5,736
04.02.2025, 23:01
Тут у вас ошибок полно

let maket = document.getElementsByClassName("maket");

let children = maket.childNodes;

Буква s говорит, что возвращается не элемент, а список. Даже если элемент один.
У списка нет свойства childNodes

JavaScript
1
let children=children[i];
Нельзя так соединять разные чилдрены. Да и зачем? Разве других идентификаторов мало?

Приведите html код, что бы понять, что вам надо.
0
416 / 307 / 113
Регистрация: 28.08.2013
Сообщений: 833
05.02.2025, 00:24
HTML отвечает за структуру. CSS - отвечает за внешний вид. JavaScript отвечает за итеративность.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Document</title>
        <style>
            html, body {
                margin: 0px;
                padding: 0px;
                width: 100%;
                height: 100%;
            }
            body {
                font-family: sans-serif;
                display: flex;
                justify-content: space-around;
                flex: 1;
            }
            main {
                display: flex;
                align-items: center;
                flex: .9;
                gap: 20px;
 
            }
            div {
                display: flex;
                justify-content: center;
                align-items: center;
                flex: 0.5;
                border: 1px solid #000000;
                font-size: 7rem;
                font-weight: bold;
                color: #FFFFFF;
                height: 30%;
                background-color: #0000FF;
                cursor: pointer;
            }
            .bgColor1 > div {                 /* Установит фон всем потомкам (div) */
                background-color: #FF0000;
            }
            .bgColor2 > div {
                background-color: #00FF00;
            }
        </style>
    </head>
    <body>
        <main>
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
        </main>
        <script>
            const main = document.querySelector('main');
            let toggle = true;
            if(main){
                main.addEventListener('click', (event) => {
                    if(toggle){
                        event.target.parentNode.className = 'bgColor1';
                    }
                    else{
                        event.target.parentNode.className = 'bgColor2';
                    }
                    toggle = !toggle;
                });
            }
        </script>
    </body>
</html>
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3838 / 1685 / 431
Регистрация: 14.03.2022
Сообщений: 4,279
05.02.2025, 09:49
Цитата Сообщение от kidASM Посмотреть сообщение
JavaScript отвечает за итеративность
JS более гибок в решении таких задач.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Document</title>
        <style>
            html, body {
                margin: 0px;
                padding: 0px;
                width: 100%;
                height: 100%;
            }
            body {
                font-family: sans-serif;
                display: flex;
                justify-content: space-around;
                flex: 1;
            }
            main {
                display: flex;
                align-items: center;
                flex: .9;
                gap: 20px;
                /* Установит фон всем потомкам (div) */
                &.bgColor0 > div {                 
                    background-color: #FF0000;
                }
                &.bgColor1 > div {
                    background-color: #00FF00;
                }
            }
            div {
                display: flex;
                justify-content: center;
                align-items: center;
                flex: 0.5;
                border: 1px solid #000000;
                font-size: 7rem;
                font-weight: bold;
                color: #FFFFFF;
                height: 30%;
                background-color: #0000FF;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <main>
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
        </main>
        <script>
            let t = 0;
            document.querySelector('main')?.addEventListener('click', (event) => {
                event.target.parentNode.className = 'bgColor' + (t++ % 2) 
            });
        </script>
    </body>
</html>
Добавлено через 4 минуты
Цитата Сообщение от Nubas22 Посмотреть сообщение
Нужно перебрать эти блоки циклом?
Необязательно...
Можно использовать т.н. делегирование.
Этот прием довольно хорошо описан в букваре https://learn.javascript.ru/event-delegation

Добавлено через 2 минуты
Nubas22, вот недавно показывали решение аналогичной проблемы...
Открывать блок в массиве и закрывать соседние
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.02.2025, 09:49
Помогаю со студенческими работами здесь

Имеются блоки, в них имеются еще по блоку. Нужно чтобы при клике на первый раскрывался дочерний
Допустим разметка (не исключаю что не она может не подойти): &lt;div id=&quot;container&quot;&gt; &lt;div id=&quot;projet&quot;&gt; ...

Нужно создать функцию которая будет вычислять центры этих фигур,а потом создать еще одну функцию которая уже будет рисовать эти точки(центры)в фигурах
#include &lt;vcl.h&gt; #pragma hdrstop #include &quot;Unit1.h&quot; //---------------------------------------------------------------------------...

Как повесить функцию при клике на метку яндекс карты?
Здравствуйте, как можно повесить функцию при нажатии на метку на яндекс картах? Есть код в JavaScript, который создаёт метки на карте....

В slick slider не работает переключение блоков при клике на другие блоки
Когда через js подключаю slick-slider, перестают работать кнопки переключения между блоками. Без slick slider все работает. Вопрос, как в...

Создать функцию, которая будет удалять, изменять, добавлять данные в объект
Создать функцию, которая будет удалять, изменять, добавлять данные в объект в зависимости от того, что выберет пользователь.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru