Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Метод removeEventListener() интерфейса EventTarget удаляет слушателя событий, зарегистрированного с помощью EventTarget.addEventListener(). Удаляемый слушатель событий определяется комбинацией типа события, функцией обработчика и дополнительными параметрами, влияющими на процесс обработки.
Вызов removeEventListener() с аргументами, которые не определяют зарегистрированного на EventTarget слушателя событий, не имеет эффекта.
Если слушатель событий удаляется в то время, когда другой слушатель обрабатывает событие, он не будет вызван. Однако его можно зарегистрировать повторно.
Предупреждение: Если слушатель зарегистрирован дважды, с флагом capture и без него, то необходимо удалять каждого слушателя по отдельности. Удаление слушателя захвата события не повлияет на слушателя всплытия этого события, и наоборот.
Слушатели событий также можно удалить передачей сигнала AbortSignal в addEventListener() и последующим вызовом abort() на контроллере, владеющем сигналом.
Строка, описывающая тип события, которое нужно удалить.
listenerФункция обработчика события для удаления.
options НеобязательныйОбъект настроек, описывающий характеристики обработчика события:
Логическое значение, определяющее зарегистрирован ли удаляемый слушатель событий на фазу захвата или нет. Если этот параметр опущен, то применяется значение по умолчанию false.
Нет.
Иногда возникает необходимость удалить зарегистрированного с помощью addEventListener() слушателя событий.
Очевидно, что для removeEventListener() нужно указать те же параметры type и listener. Но что делать с параметрами options или useCapture?
addEventListener() позволяет добавить одного и того же слушателя для одного типа событий более одного раза если отличаются настройки. При удалении слушателя removeEventListener() проверяет только флаг capture/useCapture. Его значение должно совпасть, а другие настройки не учитываются.
Например, представим такой вызов addEventListener():
Теперь рассмотрим каждый из двух вызовов removeEventListener():
Первый вызов не сработает потому, что значение useCapture не совпадает. Второй вызов будет успешен, потому что значение useCapture совпадает.
Теперь рассмотрим такой случай:
Здесь мы задаём объект options, в котором значение passive установлено в true, а другие настройки не указаны, то есть будут иметь значение по умолчанию false.
Теперь рассмотрим вызовы removeEventListener() с разными параметрами. Те из них, в которых capture или useCapture установлены в true, не сработают, остальные выполнятся успешно.
Только настройка capture имеет значение при вызове removeEventListener().
Стоит отметить, что некоторые версии браузеров ведут себя противоречиво, поэтому если нет особых причин для иного, при вызове removeEventListener() лучше использовать те же параметры, которые использовались для вызова addEventListener().
В этом примере показано как можно добавить слушателя событий mouseover, который будет удалять слушателя событий click.
| DOM # ref-for-dom-eventtarget-removeeventlistener② |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 июн. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.