Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

События в JS

Все темы React Developer

Что такое распространение события (Event Propagation)?

Event Propagation — это механизм, определяющий порядок, в котором события обрабатываются в DOM-дереве.

Основные фазы:

  1. Погружение (Capturing):

    • Событие начинается с корневого элемента и проходит вниз до целевого элемента.

    • Пример:

      element.addEventListener('click', handler, true); // true - использовать фазу погружения
  2. Целевой элемент (Target):

    • Событие достигает целевого элемента и обрабатывается.
  3. Всплытие (Bubbling):

    • Событие поднимается обратно вверх по дереву от целевого элемента к корневому.

    • Пример:

      element.addEventListener('click', handler); // По умолчанию false - использовать фазу всплытия

Что такое всплытие события (Event Bubbling)?

Event Bubbling — это процесс, при котором событие, сначала обработанное целевым элементом, поднимается вверх по DOM-дереву, вызывая обработчики событий на каждом из родительских элементов.

Основные характеристики:

  1. Порядок обработки:

    • Событие сначала обрабатывается целевым элементом.

    • Затем поднимается (всплывает) к его родительским элементам и далее к корневому элементу.

  2. Пример:

    document.getElementById("child").addEventListener("click", function() {
        console.log("Child clicked");
    });
    
    document.getElementById("parent").addEventListener("click", function() {
        console.log("Parent clicked");
    });
    
    // При клике на элемент с id "child" сначала будет выведено "Child clicked", затем "Parent clicked"

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


Что такое погружение события (Event Capturing)?

Event Capturing — это фаза распространения события в DOM, при которой событие проходит сверху вниз от корневого элемента к целевому элементу.

Основные характеристики:

  1. Порядок обработки:

    • Событие сначала проходит через корневой элемент и спускается к целевому элементу, обрабатываясь на каждом уровне.
  2. Включение захвата:

    • Для использования фазы погружения необходимо установить третий параметр в true при добавлении обработчика событий.

    • Пример:

      document.getElementById("parent").addEventListener("click", function() {
          console.log("Parent clicked");
      }, true);
      
      document.getElementById("child").addEventListener("click", function() {
          console.log("Child clicked");
      }, true);

Погружение события позволяет обрабатывать события, начиная с корневого элемента и спускаясь вниз к целевому элементу, до того как событие достигнет целевого элемента.


Что такое цель события или целевой элемент (event.target)?

event.target — это элемент, на котором первоначально произошло событие.

Пример использования:

document.getElementById("myButton").addEventListener("click", function (event) {
  console.log(event.target); // Выведет элемент, на котором произошел клик
});

event.target указывает на элемент, вызвавший событие, позволяя обработчику узнать, где именно оно произошло.


Что такое текущая цель события (event.currentTarget)?

event.currentTarget — это элемент, на котором в данный момент обрабатывается событие.

Пример использования:

document.getElementById("myButton").addEventListener("click", function (event) {
  console.log(event.currentTarget); // Выведет элемент myButton
});

event.currentTarget указывает на элемент, к которому привязан обработчик события, независимо от того, где произошло событие.

Эта страница была полезной?