Наведение на контейнер с вложенными элементами
Я хочу слушать событие наведение на элемент .list и уведение с него.
Но получается так, что когда я навожу на вложенный элемент, срабывает уведение, а когда навожу на пустое место list, срабатывает наведение.
Это поведение мне не подходит, как избавиться от этого?
const list = document.querySelector('.list');
list.addEventListener('mouseover', (e) => {
e.stopPropagation();
console.log('over');
});
list.addEventListener('mouseout', (e) => {
e.stopPropagation();
console.log('out');
});
.list {
background-color: black;
color: white;
padding: 15px;
font-family: sans-serif;
}
<div class="list">
<div class="list__item">
<span class="list__item-text">текст</span>
</div>
<div class="list__item">
<span class="list__item-text">текст</span>
</div>
<div class="list__item">
<span class="list__item-text">текст</span>
</div>
</div>
Ответы (1 шт):
Автор решения: Sanya H
→ Ссылка
Используйте mouseenter и mouseleave
const list = document.querySelector('.list');
list.addEventListener('mouseenter', (e) => {
console.log('over');
});
list.addEventListener('mouseleave', (e) => {
console.log('out');
});
.list {
background-color: black;
color: white;
padding: 15px;
font-family: sans-serif;
}
<div class="list">
<div class="list__item">
<span class="list__item-text">текст</span>
</div>
<div class="list__item">
<span class="list__item-text">текст</span>
</div>
<div class="list__item">
<span class="list__item-text">текст</span>
</div>
</div>