Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как с помощью javascript удалить обработчик mouseleave у всех элементов с классом audio_row__inner?

ПрограммированиеJavascriptПрограммирование на java
KatyushaCSGO
  · 30,8 K
Лучший

Зависит от того, как обработчик события был добавлен. Для того что бы правильно удалить обработчик события для множества элементов, необходимо правильно этот обработчик поставить.

Если у Вас есть множество элементов на которых требуется ловить одно и то же событие, то лучше воспользоваться техникой делегирования событий, которая доступна благодаря особенности распространения событий по dom дереву.

При возникновении события оно (событие) сначала распространяется по dom дереву вниз до целевого элемента, а после всплывает по дереву вверх, до корневого элемента, попутно запуская обработчики этого события.

Техника делегирования событий заключается в том, что бы повесить обработчик множества элементов, на их ближайшего родителя. Допустим у Вас есть список элементов.

<ul class="audio_row">
    <li class="audio_row__inner"></li>
    <li class="audio_row__inner"></li>
    <li class="audio_row__inner"></li>
</ul>

В этом случаи нужно добавить обработчик события на элемент ul, при клике на элементы li, возникшее событие доплывет до обработчика на элементе ul. И уже в нем можно получить id, class или любые другие атрибуты целевого элемента.

const audioRow = document.querySelector('.audio_row')

function handleClick({ target: { id } }) {
    console.log(id)
}

audioRow.addEventListener('click', handleClick)

После, удалить такой обработчик можно вызовом функции removeEventListener, передав внутрь ссылку на функцию обработчик.

audioRow.removeEventListener('click', handleClick)

Рабочие примеры:

Добавить обработчик - https://jsfiddle.net/wy9t8ug7/

Удалить обработчик - https://jsfiddle.net/kudmtps7/

Ссылки на материалы:

Всплытие событий - https://learn.javascript.ru/bubbling-and-capturing

Делегирование событий - https://learn.javascript.ru/event-delegation

Со мной можно пообщаться лично, в любой из соц. сетей указанных в профилеПерейти на instagram.com/pavelozavr
Программист (c#, c++, javascript, python) Специалист ИБ  · 7 февр 2021
написал такую разметку добавил события Теперь когда вывожу курсор появляются сообещния. Чтобы удалить эти события делаю следующее: 1. Создаю переменную в которую храню элементы с классом audio_row__inner var elems = document.getElementsByClassName("audio_row__inner") 1. Создаю цикл foreach, где прохожусь по каждому элементу в массиве, создаю клона, у которого нет... Читать далее