JavaScript HTML DOM EventListener
Метод addEventListener()
Пример
Запустить событие прослушивателя, когда пользователь нажимает кнопку:
Попробуйте сами »
Метод addEventListener() используется для добавления обработчика событий к указанному элементу.
Обработчики событий, добавленные с помощью метода addEventListener(), не перезаписывают существующие обработчики событий.
Вы можете добавить несколько обработчиков событий к одному элементу.
Вы можете добавить несколько обработчиков событий одного типа к одному и тому же элементу, например два события "click".
Вы можете добавить прослушиватели событий к любому объекту DOM, а не только к элементам HTML. Например: объект window.
Метод addEventListener() упрощает управление событиями (всплытие против перехвата).
При использовании метода addEventListener() JavaScript отделяется от HTML-разметки для лучшей читаемости, и вы можете добавлять обработчики событий даже тогда, когда не контролируете HTML-разметку.
Вы можете использовать метод removeEventListener() для удаления обработчиков событий.
Синтаксис
Первый параметр — это тип события (например, "click" или "mousedown").
Второй параметр — это функция, которая будет вызвана при срабатывании события.
Третий параметр — это логическое значение, которое указывает, используется ли всплытие или перехват события. Этот параметр необязателен.
![]() |
Примечание: не используйте префикс "on". Например, используйте "click" вместо "onclick". |
|---|
Добавление обработчика события к элементу
Пример
Вывести "Hello World!" при клике пользователя по элементу:
Попробуйте сами »
Вы можете ссылаться на внешнюю функцию, используя её имя:
Пример
Вывести "Hello World!" при клике пользователя по элементу:
function myFunction() {
alert ("Hello World!");
}
Попробуйте сами »
Добавление нескольких обработчиков событий к одному элементу
Метод addEventListener() позволяет добавлять несколько событий к одному элементу без перезаписи существующих событий:
Пример
element.addEventListener("click", mySecondFunction);
Попробуйте сами »
Вы можете добавлять различные типы событий к одному элементу:
Пример
element.addEventListener("click", mySecondFunction);
element.addEventListener("mouseout", myThirdFunction);
Попробуйте сами »
Добавление обработчика событий к объекту window
Метод addEventListener() позволяет добавлять прослушиватели событий к объектам HTML DOM, таким как элементы HTML, HTML-документы и объект window. Или к другим поддерживаемым объектам событий, например к объекту xmlHttpRequest.
Пример
Добавьте прослушиватель событий, когда пользователь изменяет размер окна:
document.getElementById("demo").innerHTML = sometext;
});
Попробуйте сами »
Передача параметров
При передаче значений параметров используйте "анонимную функцию" для вызова функции с параметрами:
Всплытие событий или погружение событий?
Существует два способа распространения событий: всплытие и погружение.
Распространение событий определяет порядок, в котором запускаются события элементов. Если вы вставите элемент <p> внутрь элемента <div>, и пользователь щёлкнет по элементу <p>, событие "click" какого элемента сработает первым?
В случаевсплытияПри всплытии событие внутреннего элемента запускается первым, а затем запускается событие внешнего элемента. То есть: событие click элемента <p> запускается первым, затем событие click элемента <div>.
В случаепогруженияПри погружении событие внешнего элемента запускается первым, а затем запускается событие внутреннего элемента. То есть: событие click элемента <div> запускается первым, затем событие click элемента <p>.
Метод addEventListener() может принимать параметр "useCapture" для задания типа распространения:
Значение по умолчанию — false, что означает всплывающее распространение. Если значение равно true, событие использует перехватывающее распространение.
Пример
Попробуйте сами »
Метод removeEventListener()
Метод removeEventListener() удаляет обработчики событий, добавленные методом addEventListener():
Поддержка браузеров
Числа в таблице указывают первую версию браузера, которая полностью поддерживает этот метод.
| Метод | |||||
|---|---|---|---|---|---|
| addEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
| removeEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
Примечание:IE 8 и более ранние версии IE, а также Opera 7.0 и более ранние версии не поддерживают методы addEventListener() и removeEventListener(). Однако для этих версий браузеров можно использовать метод detachEvent() для удаления обработчиков событий:
element.detachEvent(event, function);
Пример
Кроссбраузерное решение:
if (x.addEventListener) { // Все основные браузеры, кроме IE 8 и более ранних версий
x.addEventListener("click", myFunction);
} else if (x.attachEvent) { // IE 8 и более ранние версии
x.attachEvent("onclick", myFunction);
}
Попробуйте сами »
Справочник по объектам событий HTML DOM
Для всех событий HTML DOM вы можете просмотреть наш полныйСправочник по объектам событий HTML DOM. Другие расширения
