Событийная модель в JavaScript

14 февраля 2026
Автор

Дмитрий Фандорин

Событийная модель - это механизм, который позволяет обрабатывать события, происходящие на веб-странице. События могут быть вызваны различными действиями пользователя, такими как клик мыши, перемещение мыши, нажатие клавиш и т.д. Без использования событийной модели невозможно создать интерактивные веб-приложения, так как они не будут реагировать на действия пользователя.

Форма записи

События могут быть записаны с помощью on-свойств DOM-элементов. Например, чтобы вызвать функцию при клике на кнопку, можно использовать следующий код:

const button = document.getElementById('my-button');

button.onclick = function() {
  alert('Button clicked!');
};

Здесь создается переменная button, которая содержит кнопку с идентификатором my-button. Затем устанавливается свойство onclick кнопки, которое вызывает функцию при клике.

Однако лучше использовать метод addEventListener(), который позволяет добавлять несколько обработчиков событий на один и тот же элемент. Например, чтобы добавить обработчик клика на кнопку, можно использовать следующий код:

const button = document.getElementById('my-button');

button.addEventListener('click', function() {
  alert('Button clicked!');
});

Здесь создается переменная button, которая содержит кнопку с идентификатором my-button. Затем с помощью метода addEventListener() добавляется обработчик события click, который вызывает функцию при клике на кнопку.

Описание работы

Функция-обработчик - это функция, которая вызывается при возникновении события. Обработчик может быть определен как функция или как ссылка на функцию. Например, в предыдущих примерах функция-обработчик определена как анонимная функция:

function() {
  alert('Button clicked!');
}

Всплытие событий - это механизм, при котором событие, произошедшее на элементе, передается вверх по иерархии элементов. Например, если на странице есть вложенные элементы, и при клике на внутренний элемент происходит событие, то это событие будет передано на родительские элементы вверх по иерархии. Чтобы остановить всплытие событий, можно использовать метод stopPropagation(). Например:

const inner = document.getElementById('inner');
const outer = document.getElementById('outer');

inner.addEventListener('click', function(event) {
  alert('Inner element clicked!');
  event.stopPropagation();
});

outer.addEventListener('click', function(event) {
  alert('Outer element clicked!');
});

Здесь создаются переменные inner и outer, которые содержат вложенные элементы. Обработчик события клика на внутреннем элементе устанавливается с помощью метода addEventListener(). Функция-обработчик вызывается при клике на внутренний элемент, а затем вызывается обработчик клика на внешнем элементе. Однако с помощью метода stopPropagation() остановка всплытия событий, который останавливает передачу события на родительские элементы.

Заключение

Событийная модель позволяет обрабатывать события на веб-страницах и создавать более интерактивные веб-приложения. События могут быть вызваны различными действиями пользователя, такими как клик мыши, перемещение мыши, нажатие клавиш и т.д. В JavaScript события могут быть записаны с помощью on-свойств DOM-элементов или метода addEventListener().

Стрелочка влевоHTMLCollection и NodeList в JavaScriptElement в JavaScriptСтрелочка вправо

Постройте личный план изучения Javascript до уровня Middle — бесплатно!

Javascript — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Javascript

Как работает метод trim() - JavaScriptКак работает метод substring() - JavaScriptКак работает метод toUpperCase() - JavaScriptКак работает метод toLowerCase() - JavaScriptКак работает метод startsWith() - JavaScriptКак работает метод split() - JavaScriptКак работает метод slice() - JavaScriptКак работает метод search() - JavaScriptКак работает метод replaceAll() - JavaScriptКак работает метод replace() - JavaScriptКак работает метод repeat() - JavaScriptКак работает метод padStart() - JavaScriptКак работает метод padEnd() - JavaScriptКак работает метод matchAll() - JavaScriptКак работает метод match() - JavaScriptКак работает метод localeCompare() - JavaScriptКак работает свойство length - JavaScriptКак работает метод lastIndexOf() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод fromCodePoint() - JavaScriptКак работает метод fromCharCode() - JavaScriptКак работает метод endsWith() - JavaScriptКак работает метод concat() - JavaScriptКак работает метод codePointAt() - JavaScriptКак работает метод charCodeAt() - JavaScriptКак работает метод charAt() - JavaScript
Итератор в JavaScript
try...catch в JavaScriptError в JavaScript
Событие unload в JavaScriptСобытие wheel в JavaScriptСобытие touch в JavaScriptСобытие submit в JavaScriptСобытие scroll в JavaScriptСобытие reset в JavaScriptМетод .preventDefault() в JavaScriptСобытие mouseover в JavaScriptСобытие mouseout в JavaScriptСобытие load в JavaScriptСобытие keyup в JavaScriptСобытие keydown в JavaScriptСобытие invalid в JavaScriptСобытие input в JavaScriptСобытийная модель Event в JavaScriptОбъект события Event в JavaScriptСобытие DOMContentLoaded в JavaScriptСобытие click в JavaScriptСобытие dblclick в JavaScriptСобытие change в JavaScriptСобытие beforeunload в JavaScript
Как работает метод some() - JavaScriptКак работает метод reverse() - JavaScriptКак работает метод reduce() - JavaScriptКак работает метод map() - JavaScriptКак работает метод isArray() - JavaScriptКак работает метод indexOf() - JavaScriptКак работает метод from() - JavaScriptКак работает метод includes() - JavaScriptКак работает метод forEach() - JavaScriptКак работает метод flatMap() - JavaScriptКак работает метод flat() - JavaScriptКак работает метод findIndex() - JavaScriptКак работает метод find() - JavaScriptКак работает метод filter() - JavaScriptКак работает метод every() - JavaScriptМассивы в JavaScript
Открыть базу знаний

Лучшие курсы по теме

изображение курса

Основы JavaScript

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.8
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий