Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 13.09.2024
Сообщений: 1

Изменение класса ul при наведении на li

13.09.2024, 19:59. Показов 440. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане! Можете помочь в таком вопросе? Нужно чтобы при наведении на дочерний элемент, в данном случае li, у родителя изменялся класс, т.е. у ul, а когда убираем курсор с дочернего, то родитель возвращает прежний класс. У меня получилось изменять класс ul только если курсор наводится на первый элемент списка, т.е. на первый элемент li, а если наводить на любой другой li из данном списке, то ничего не происходит и у ul класс не меняется. Что я делаю ни так? Спасибо!

JavaScript
1
2
3
4
5
6
7
8
<script>
document.querySelector('li.punkt-menu-bok').addEventListener('mouseenter', function() {
    this.parentElement.classList.add('hovered');
});
document.querySelector('li.punkt-menu-bok').addEventListener('mouseleave', function() {
    this.parentElement.classList.remove('hovered');
});
</script>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.09.2024, 19:59
Ответы с готовыми решениями:

Изменение кнопки при наведении.
Добрый день. Помогите с кодом, чтобы при наведении мышки на кнопку, изображение кнопки &quot;1.gif&quot; , менялось на изображение кнопки...

Изменение цвета при наведении
Добрый вечер! Изучаю html+css. Дошел до практики и столкнулся со следующей проблемой: Как сделать,чтобы при наведении на...

Изменение фона при наведении
всем привет. казалось бы, простая задача, но есть такая структура: &lt;span class=&quot;menu&quot;&gt;пункт1&lt;/span&gt;&lt;span...

4
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3809 / 1647 / 428
Регистрация: 14.03.2022
Сообщений: 4,104
13.09.2024, 20:46
Цитата Сообщение от kolek8708 Посмотреть сообщение
Что я делаю ни так?
Алгоритм у тебя плохой.

Как вариант - используй делегирование https://learn.javascript.ru/event-delegation
И событие подбери более удачное для этого дела.

Добавлено через 37 секунд
P.S.
И тестовый пример нормальный сделай...
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
14.09.2024, 12:17
kolek8708, а нельзя просто при наведении на ul менять класс ul?
0
409 / 301 / 112
Регистрация: 28.08.2013
Сообщений: 787
14.09.2024, 13:24
Пример. Разбирай CSS.
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.parent { 
    pointer-events: none; 
} 
 
.parent:hover { 
    background-color: rgb(132, 233, 189); 
} 
 
.parent .child { 
    pointer-events: auto; 
} 
 
.parent .child:hover { 
    background-color: yellow; 
    cursor: pointer;
}
HTML5
1
2
3
4
<ul class="parent">
    <li>parent - you can hover over here and it won't trigger</li>
    <li class="child">hover over the child instead!</li>
</ul>
0
 Аватар для voraa
1238 / 1133 / 178
Регистрация: 21.01.2024
Сообщений: 5,148
15.09.2024, 15:54
Цитата Сообщение от DrType Посмотреть сообщение
а нельзя просто при наведении на ul менять класс ul?
Думаю, что это не всегда возможно. Например у <li> будут установлены вертикальные margin. Тогда, по идеи, в маргинах класс нужно снимать.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
document.querySelectorAll('li.punkt-menu-bok')
    .forEach (li => {
            const ul = li.closest('ul');
            li.addEventListener('mouseenter', 
                () =>  ul.classList.add('hovered')
            )
            li.addEventListener('mouseleave', 
                () =>  ul.classList.remove('hovered')
            )
 
    });
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.09.2024, 15:54
Помогаю со студенческими работами здесь

Изменение цвета при наведении
добрый день, есть код, но никак не могу понять куда вписать изменение background при наведении и нажатии на раздел в диаграмме. Код в...

Изменение картинки при наведении
Всем доброго времени суток! На сайте президента http://президент.рф при наведении на заголовок новости слева меняется картинка. Как можно...

Изменение кнопки при наведении
Здравствуйте! В WPF я недавно и прошу помочь. Нужно сделать кнопку в виде, например, смайлика. При наведении он менял улыбку. Кнопка должна...

Изменение цвета при наведении
Чтобы при наведении на ячейки слева менялся цвет ячейки справа. html код написал а вот остальное не получается &lt;html&gt; ...

Изменение картинки при наведении
&lt;Button x:Name=&quot;button4&quot; HorizontalAlignment=&quot;Left&quot; Margin=&quot;405,3,0,0&quot; VerticalAlignment=&quot;Top&quot; Width=&quot;24&quot; Click=&quot;button4_Click&quot;...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru