Свойства объекта event javascript

Объект события Event

Объект Event описывает событие, произошедшее на странице. Одной из причин возникновения событий являются действия пользователя, такие как клики мышкой Mouse Event или ввод с клавиатуры Keyboard Event . Существует множество различных событий с разным набором информации.

Обратите внимание на обзорную статью о событиях. В ней описываются примеры работы с событиями.

Пример

Скопировать ссылку «Пример» Скопировано

Самый простой и широко распространённый способ использования событий — это отслеживание срабатывания кликов по каким-либо элементам на странице.

При подписке на событие мы передаём обработчик, который будет вызван при каждом срабатывании события в браузере. В случае, когда происходит событие типа click , обработчик будет вызван с событием Mouse Event :

 element.addEventListener('click', function (event)  console.log(event)>) element.addEventListener('click', function (event)  console.log(event) >)      

Как пишется

Скопировать ссылку «Как пишется» Скопировано

В этом материале мы рассматриваем базовый объект события, каждое событие может содержать дополнительные свойства в зависимости от его типа, но список ниже есть у всех.

Свойства

Скопировать ссылку «Свойства» Скопировано

  • bubbles — является ли данное событие всплывающим.
  • cancelable — является ли событие отменяемым.
  • current Target — указывает на элемент, на котором установлен обработчик события.
  • default Prevented — отменено ли поведение события по умолчанию.
  • event Phase — указывает на фазу срабатывания события.
  • is Trusted — указывает на происхождение события, будет в значении true , если событие инициировано действиями пользователя. false — если событие инициировано из кода с помощью dispatch Event ( ) .
  • target — ссылка на объект, которым было инициировано событие. Например, если событие произошло на поле ввода, мы получим ссылку на этот DOM элемент.
  • time Stamp — время возникновения события в миллисекундах.
  • type — тип события.

Методы

Скопировать ссылку «Методы» Скопировано

  • composed Path ( ) — вернёт массив элементов, на которых сработает событие.
  • prevent Default ( ) — предотвращает дефолтное поведение события. Если вызвать этот метод на событии клика по ссылке, то переход по ссылке не произойдёт, но событие продолжит всплытие.
  • stop Propagation ( ) — предотвращает всплытие события.
  • stop Immediate Propagation ( ) — делает то же самое, что и stop Propagation , но в том числе предотвращает вызов обработчиков события, которые были установлены на этом же элементе.

Обработчики событий, установленные на элемент, вызываются по порядку их установки.

Как понять

Скопировать ссылку «Как понять» Скопировано

Работа JavaScript основана на событийной модели — это значит, что для того, чтобы запустить какой-либо код, должно произойти событие. Даже код, который был написан в файле и не привязан к какому-либо событию, будет обработан после того, как произойдёт событие, которое сообщит браузеру, что код был загружен.

Событие может быть создано по следующим причинам:

Примеры

Скопировать ссылку «Примеры» Скопировано

Системное событие

Скопировать ссылку «Системное событие» Скопировано

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

Мы можем отслеживать состояние интернет-соединения и показывать сообщение, если оно пропало.

 window.addEventListener('offline', function()  alert('Отсутствует подключение к интернету')>) window.addEventListener('offline', function()  alert('Отсутствует подключение к интернету') >)      

Программное событие

Скопировать ссылку «Программное событие» Скопировано

Событие может быть создано с помощью кода, поле is Trusted в таком событии будет содержать значение false , а значит, мы будем знать, что событие было вызвано не системно и не пользователем.

Создадим своё событие и вызовем его на window :

 const myEvent = new CustomEvent('my-event',  detail:  spicy: 123, >,>) window.addEventListener('my-event', function(evt)  console.log('В поле spicy:', evt.detail.spicy)>) window.dispatchEvent(myEvent) const myEvent = new CustomEvent('my-event',  detail:  spicy: 123, >, >) window.addEventListener('my-event', function(evt)  console.log('В поле spicy:', evt.detail.spicy) >) window.dispatchEvent(myEvent)      

На практике

Скопировать ссылку «На практике» Скопировано

Павел Минеев советует

Скопировать ссылку «Павел Минеев советует» Скопировано

🛠 В событии есть два похожих поля: target и current Target . Их отличие легко увидеть на примере.

   Моя кнопочка  button class="button" type="button"> span>Моя кнопочкаspan> button>      
 document.querySelector('.button').addEventListener('click', function (event)  console.log('Событие инициировано на', event.target) console.log('Событие поймано на', event.currentTarget)>) document.querySelector('.button').addEventListener('click', function (event)  console.log('Событие инициировано на', event.target) console.log('Событие поймано на', event.currentTarget) >)      

current Target всегда будет элементом, к которому привязан обработчик, то есть элементом, на котором вызывался add Event Listener ( ) .

target — это элемент, на котором произошло событие. Оно может не совпадать с current Target , потому что большинство событий всплывают.

Источник

Event

The Event interface represents an event which takes place in the DOM.

An event can be triggered by the user action e.g. clicking the mouse button or tapping keyboard, or generated by APIs to represent the progress of an asynchronous task. It can also be triggered programmatically, such as by calling the HTMLElement.click() method of an element, or by defining the event, then sending it to a specified target using EventTarget.dispatchEvent() .

There are many types of events, some of which use other interfaces based on the main Event interface. Event itself contains the properties and methods which are common to all events.

Many DOM elements can be set up to accept (or «listen» for) these events, and execute code in response to process (or «handle») them. Event-handlers are usually connected (or «attached») to various HTML elements (such as , , , etc.) using EventTarget.addEventListener() , and this generally replaces using the old HTML event handler attributes. Further, when properly added, such handlers can also be disconnected if needed using removeEventListener() .

Note: One element can have several such handlers, even for the exact same event—particularly if separate, independent code modules attach them, each for its own independent purposes. (For example, a webpage with an advertising-module and statistics-module both monitoring video-watching.)

When there are many nested elements, each with its own handler(s), event processing can become very complicated—especially where a parent element receives the very same event as its child elements because «spatially» they overlap so the event technically occurs in both, and the processing order of such events depends on the Event bubbling and capture settings of each handler triggered.

Interfaces based on Event

Below is a list of interfaces which are based on the main Event interface, with links to their respective documentation in the MDN API reference.

Note that all event interfaces have names which end in «Event».

  • AnimationEvent
  • AudioProcessingEvent Deprecated
  • BeforeUnloadEvent
  • BlobEvent
  • ClipboardEvent
  • CloseEvent
  • CompositionEvent
  • CustomEvent
  • DeviceMotionEvent
  • DeviceOrientationEvent
  • DragEvent
  • ErrorEvent
  • FetchEvent
  • FocusEvent
  • FontFaceSetLoadEvent
  • FormDataEvent
  • GamepadEvent
  • HashChangeEvent
  • HIDInputReportEvent
  • IDBVersionChangeEvent
  • InputEvent
  • KeyboardEvent
  • MediaStreamEvent Deprecated
  • MessageEvent
  • MouseEvent
  • MutationEvent Deprecated
  • OfflineAudioCompletionEvent
  • PageTransitionEvent
  • PaymentRequestUpdateEvent
  • PointerEvent
  • PopStateEvent
  • ProgressEvent
  • RTCDataChannelEvent
  • RTCPeerConnectionIceEvent
  • StorageEvent
  • SubmitEvent
  • SVGEvent Deprecated
  • TimeEvent
  • TouchEvent
  • TrackEvent
  • TransitionEvent
  • UIEvent
  • WebGLContextEvent
  • WheelEvent

Constructor

Creates an Event object, returning it to the caller.

Instance properties

A boolean value indicating whether or not the event bubbles up through the DOM.

A boolean value indicating whether the event is cancelable.

A boolean indicating whether or not the event can bubble across the boundary between the shadow DOM and the regular DOM.

A reference to the currently registered target for the event. This is the object to which the event is currently slated to be sent. It’s possible this has been changed along the way through retargeting.

Indicates whether or not the call to event.preventDefault() canceled the event.

Indicates which phase of the event flow is being processed. It is one of the following numbers: NONE , CAPTURING_PHASE , AT_TARGET , BUBBLING_PHASE .

Indicates whether or not the event was initiated by the browser (after a user click, for instance) or by a script (using an event creation method, for example).

A reference to the object to which the event was originally dispatched.

The time at which the event was created (in milliseconds). By specification, this value is time since epoch—but in reality, browsers’ definitions vary. In addition, work is underway to change this to be a DOMHighResTimeStamp instead.

The name identifying the type of the event.

Legacy and non-standard properties

A historical alias to Event.stopPropagation() that should be used instead. Setting its value to true before returning from an event handler prevents propagation of the event.

The explicit original target of the event.

The original target of the event, before any retargetings.

A historical property still supported in order to ensure existing sites continue to work. Use Event.preventDefault() and Event.defaultPrevented instead.

A boolean value indicating whether the given event will bubble across through the shadow root into the standard DOM. Use composed instead.

Instance methods

Returns the event’s path (an array of objects on which listeners will be invoked). This does not include nodes in shadow trees if the shadow root was created with its ShadowRoot.mode closed.

Cancels the event (if it is cancelable).

For this particular event, prevent all other listeners from being called. This includes listeners attached to the same element as well as those attached to elements that will be traversed later (during the capture phase, for instance).

Stops the propagation of events further along in the DOM.

Deprecated methods

Initializes the value of an Event created. If the event has already been dispatched, this method does nothing. Use the constructor ( Event() instead).

Specifications

Browser compatibility

BCD tables only load in the browser

See also

  • Types of events available: Event reference
  • Comparison of Event Targets ( target vs. currentTarget vs. relatedTarget vs. originalTarget )
  • Creating and triggering custom events

Found a content problem with this page?

This page was last modified on Jul 3, 2023 by MDN contributors.

Your blueprint for a better internet.

Источник

Читайте также:  Html код добрый день
Оцените статью