JavaScript HTML DOM Слушатель событий
Метод addEventListener()
Пример
Добавить прослушиватель событий, который запускается, когда пользователь нажимает кнопку:
document.getElementById("myBtn").addEventListener("click", displayDate);
Попробуйте сами »
Метод addEventListener() присоединяет обработчик событий к указанному элементу.
Метод addEventListener() присоединяет обработчик событий к элементу без перезаписи существующих обработчиков событий.
К одному элементу можно добавить множество обработчиков событий.
Вы можете добавить несколько обработчиков событий одного типа к одному элементу, т.е. два события "клика".
Вы можете добавить слушателей событий к любому объекту DOM, а не только к элементам HTML, т.е. объект окна.
Метод addEventListener() упрощает управление реакцией события на всплытие.
При использовании метода addEventListener() JavaScript отделяется от разметки HTML для лучшей читаемости и позволяет добавлять прослушиватели событий, даже если вы не управляете разметкой HTML.
Вы можете легко удалить прослушиватель событий с помощью метода removeEventListener().
Синтаксис
element.addEventListener(event, function, useCapture);
Первый параметр - это тип события (например "click" или "mousedown" или любое другое HTML DOM событие.)
Второй параметр - это функция, которую мы хотим вызвать при возникновении события.
Третий параметр - это логическое значение, определяющее, следует ли использовать восходящую цепочку событий или захват событий. Этот параметр не является обязательным.
Обратите внимание, что вы не используете "on" префикс для события; используйте "click" вместо "onclick".
Добавить обработчик событий к элементу
Пример
Оповещение "Hello World!" когда пользователь нажимает на элемент :
element.addEventListener("click", function(){ alert("Hello World!"); });
Попробуйте сами »
Вы также можете обратиться к внешней "именованной" функции:
Пример
Оповещение "Hello World!", когда пользователь нажимает на элемент:
element.addEventListener("click", myFunction);
function myFunction() {
alert ("Hello World!");
}
Попробуйте сами »
Добавить несколько обработчиков событий к одному элементу
Метод addEventListener() позволяет добавлять множество событий в один и тот же элемент без перезаписи существующих событий:
Пример
element.addEventListener("click", myFunction);
element.addEventListener("click", mySecondFunction);
Попробуйте сами »
К одному элементу можно добавлять события разных типов:
Пример
element.addEventListener("mouseover", myFunction);
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);
Попробуйте сами »
Добавить обработчик событий в объект окна
Метод addEventListener() позволяет добавлять прослушиватели событий к любому объекту HTML DOM, например элементам HTML, документу HTML, объекту окна или другим объектам, которые поддерживают события, как объект xmlHttpRequest.
Пример
Добавить прослушиватель событий, который запускается, когда пользователь изменяет размер окна:
window.addEventListener("resize", function(){
document.getElementById("demo").innerHTML = sometext;
});
Попробуйте сами »
Передача параметров
При передаче значений параметров используйте "анонимную функцию", которая вызывает указанную функцию с параметрами:
Всплывающие события или захват событий?
Есть два способа распространения событий в HTML DOM: всплывание и захватывание.
Распространение событий - это способ определения порядка элементов при возникновении события. Если у вас есть <p> элемент внутри <div> элемента, и пользователь кликает на <p> элемент, для какого событие "click" должно быть обработано в первую очередь?
Во всплытии сначала обрабатывается событие самого внутреннего элемента, а затем внешнее: сначала обрабатывается событие клика <p> элемента, затем событие клика <div> элемента.
При захвате сначала обрабатывается событие самого внешнего элемента, а затем внутреннее: сначала будет обработано событие клика <div> элемента, а затем событие клика <p> элемента.
С помощью метода addEventListener() вы можете указать тип распространения, используя параметр "useCapture":
addEventListener(event, function, useCapture);
Значение по умолчанию - false, которое будет использовать всплывающее распространение, когда значение установлено в true, событие использует распространение захватывания.
Пример
document.getElementById("myP").addEventListener("click", myFunction, true);
document.getElementById("myDiv").addEventListener("click", myFunction, true);
Попробуйте сами »
Метод removeEventListener()
Метод removeEventListener() удаляет обработчики событий, которые были прикреплены с помощью метода addEventListener():
Справка по объекту события HTML DOM
Список всех событий HTML DOM смотрите в полном Справочнике по объектам событий HTML DOM на нашем сайте W3Schools на русском.

