Метод addEventListener()
Пример
Прикрепите событие щелчка к документу. Когда пользователь щелкает в любом месте документа, выводите "Привет Мир" в элементе "p" с id= "demo";:
document.addEventListener("click", function(){
document.getElementById("demo").innerHTML = "Привет Мир";
});
Попробуйте сами »
Еще примеры "Попробуй сам" ниже.
Определение и использование
Метод document.addEventListener() присоединяет к документу обработчик событий.
Совет: Используйте метод document.removeEventListener(), чтобы удалить обработчик событий, который был присоединен с помощью метода addEventListener().
Совет: Используйте метод element.addEventListener() присоединения обработчика событий к указанному элементу.
Поддержка браузера
Цифры в таблице указывают первую версию браузера, которая полностью поддерживает этот метод.
Метод | |||||
---|---|---|---|---|---|
addEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
Примечание: Метод addEventListener() не поддерживается в Internet Explorer 8 и более ранних версиях, а также в Opera 6.0 и более ранних версиях. Однако для этих конкретных версий браузера вы можете использовать метод attachEvent() прикрепления обработчиков событий (см. "Еще примеры" ниже для кроссбраузерного решения).
Синтаксис
document.addEventListener(event, function, useCapture)
Параметр значений
Параметр | Описание |
---|---|
event | Требуемый. Строка, указывающая имя события. Примечание: Не надо использовать префикс "on". Например, используйте "click" вместо "onclick". Список всех событий HTML DOM смотрите в Справочник объекта события HTML DOM. |
function | Требуемый. Указывает функцию, которая будет выполняться при возникновении события. При возникновении события, объект события передается функции в качестве первого параметра. Тип объекта события зависит от указанного события. Например, событие "click" принадлежит объекту MouseEvent. |
useCapture |
Необязательный. Логическое значение, указывающее, должно ли событие выполняться в фазе захвата или в фазе барботирования. Возможные значения:
|
Технические детали
Версия DOM | События DOM Уровень 2 |
---|---|
Возвращаемое значение: | Нет возвращаемого значения |
Список изменений: | Параметр useCapture стал необязательным в Firefox 6 и Opera 11.60 (всегда был необязательным для Chrome, IE и Safari) |
Еще примеры
Пример
Вы также можете обратиться к внешней "именованной" функции:
document.addEventListener("click", myFunction);
function myFunction() {
document.getElementById("demo").innerHTML = "Привет Мир";
}
Попробуйте сами »
Пример
Вы можете добавить в документ много событий, не перезаписывая существующие события.
В этом примере показано, как добавить в документ два события щелчка:
document.addEventListener("click", myFunction);
document.addEventListener("click", someOtherFunction);
Попробуйте сами »
Пример
В документ можно добавлять события различных типов.
В этом примере показано, как добавить в документ множество событий:
document.addEventListener("mouseover", myFunction);
document.addEventListener("click", someOtherFunction);
document.addEventListener("mouseout", someOtherFunction);
Попробуйте сами »
Пример
При передаче значений параметров используйте "анонимную функцию", которая вызывает указанную функцию с параметрами:
document.addEventListener("click", function() {
myFunction(p1, p2);
});
Попробуйте сами »
Пример
Измените цвет фона элемента "body" документа:
document.addEventListener("click", function(){
document.body.style.backgroundColor = "red";
});
Попробуйте сами »
Пример
Использование метода removeEventListener() для удаления обработчика событий, присоединенного с помощью метода addEventListener():
// Прикрепите обработчик событий к документу
document.addEventListener("mousemove", myFunction);
// Удалите обработчик событий из документа
document.removeEventListener("mousemove", myFunction);
Попробуйте сами »
Пример
Для браузеров, которые не поддерживают метод addEventListener(), можно использовать метод attachEvent().
Этот пример демонстрирует кроссбраузерное решение:
if (document.addEventListener) { // Для всех основных браузеров, кроме IE8 и более ранних версий
document.addEventListener("click", myFunction);
} else if (document.attachEvent) { // Для IE 8 и более ранних версий
document.attachEvent("onclick", myFunction);
}
Попробуйте сами »
Связанные страницы
Учебник JavaScript: HTML DOM EventListener
Справочник HTML DOM: element.addEventListener()