Event — Интерфейсы веб API
Интерфейс Event
представляет собой любое событие, которое происходит в DOM; некоторые из них генерируемые пользователем (клик мышью или нажатие клавиши на клавиатуре), а некоторые — генерируемые API (события, обозначающие завершение процесса анимации, приостановка видео и т.д.). Существует много типов событий, некоторые из них используют интерфейсы, базирующиеся на главном интерфейсе Event
. Event
содержит общие свойства и методы для всех событий.
Ниже приведён список интерфейсов, основанных на главном интерфейсе Event
, а также указаны ссылки на них в документации MDN API. Заметьте, что имена всех интерфейсов оканчиваются на «Event».
Event()
- Создает объект
Event
и возвращает его вызывающему.
Event.bubbles
Только для чтения- Логическое значение, указывающее, вспыло ли событие вверх по DOM или нет.
Event.cancelBubble
- Историческое название синонима
Event.stopPropagation()
. Если установить знаение вtrue
до возврата из обработчика события (Event Handler), то событие не будет распространяться дальше (например, на обрабочики для родительских узлов). Event.cancelable
Только для чтения- Логическое значение, показывающее возможность отмены события.
Event.composed
Только для чтения- Логическое значение, показывающее может или нет событие всплывать через границы между shadow DOM (внутренний DOM конкретного элемента) и обычного DOM документа.
Event.currentTarget
Только для чтения- Ссылка на текущий зарегистрированный объект, на котором обрабатывается событие. Это объект, которому планируется отправка события; поведение можно изменить с использованием перенаправления ( retargeting).
Event.deepPath
Массив
DOM-узлов
, через которые всплывало событие.Event.defaultPrevented
Только для чтения- Показывает, была ли для события вызвана функция
event.preventDefault()
. Event.eventPhase
Только для чтения- Указывает фазу процесса обработки события.
Event.explicitOriginalTarget
Только для чтения- Явный первоначальный целевой объект события (Mozilla-специфичный). Не может содержать анонимного контента.
Event.originalTarget
Только для чтения- Первоначальный целевой объект события до перенаправлений (Mozilla-специфичный). Может быть из анонимного контента.
Event.returnValue
- Нестандартная альтернатива (оставшаяся от старых версий Microsoft Internet Explorer) для
Event.preventDefault()
иEvent.defaultPrevented
. Event.scoped
Только для чтенияЛогическое значение
, показывающее всплывает ли данное событие через shadow root (внутренний DOM элемента). Это свойство было переименовано вcomposed
.Event.srcElement
- Нестандартный синоним (остался от старых версий Microsoft Internet Explorer) для
Event.target
. Event.target
Только для чтения- Ссылка на целевой объект, на котором произошло событие.
Event.timeStamp
Только для чтения- Время, когда событие было создано (в миллисекундах). По спецификации это время от начала Эпохи (Unix Epoch), но в действительности в разных браузерах определяется по-разному; кроме того, ведётся работа по изменению его на
DOMHighResTimeStamp
тип. Event.type
Только для чтения- Название события (без учета регистра символов).
Event.isTrusted
Только для чтения- Показывает было или нет событие инициировано браузером (например, по клику мышью) или из скрипта (например, через функцию создания события, такую как event. initEvent)
Event.createEvent()
Создаёт новое событие, которое затем должно быть проинициализировано вызовом его метода
initEvent()
.
Event.initEvent()
- Инициализация значений созданного с помощью Document.createEvent() события. Если событие уже отправлено, то эта функция ничего не делает.
Event.preventBubble()
Вышла из употребления с версии Gecko 24- Предотвращает всплытие события. Устаревшая, используйте вместо неё
event.stopPropagation
. Event.preventCapture()
Обзор событий и обработчиков — Руководства Web-разработчика
Эта обзорная статья о событиях и их обработчиках описывает шаблон проектирования кода, который используется для реагирования на события, возникающие, когда браузер получает доступ к web-странице, и содержит подборку типов подобных событий, которые современные брауезеры могут обрабатывать.
События и их обработчики представляют собой основную технику в JavaScript для реагирования на события, возникающие, когда браузер получает доступ к web-странице, включая события о подготовке страницы к отображению, взаимодействии с ее содержимым, в зависимости от устройства, на котором браузер был запущен, и многие другие случаи, такие как воспроизведение потоковой медиа-информации или расчет времени анимации.
События и обработчики событий заняли центральное место в web-программировании с добавлением языка в браузеры, сопровождая смену архитектуры рендеринга от перехвата и загрузки страницы к управлению с помощью событий, основанном на перекомпановке (reflow). Сначала браузер ожидает, пока он получит все ресурсы, связанные со страницей, чтобы проанализировать, обработать, отрисовать и предоставить страницу пользователю. Отрисованная страница остается неизменной, пока браузер не запросит новую. С изменением в подходе к рендерингу динамической страницы, браузер непрерывно зацикливается между обработкой, отрисовкой, представлением содержимого и ожиданием некоторого нового триггера события. Триггеры событий включают, например, завершение загрузки ресурса по сети, скачивание изображений, которые теперь могут быть отрисованы на экране, завершение браузером анализа ресурса, обработку HTML-содержимого страницы, взаимодействие пользователя с содержимым страницы
Второй подход изменяет последние шаги, переходя от просторого потока к бесконечному циклу, где ожидание и обработка возникновения новых событий следует за отрисовкой. Введение динамического подхода позволяет странице быть частично отрендериной, даже когда браузер еще не закончил извлечение всех ресурсов; это так же разрешено для действий, управляемыми событиями, которые JavaScript использует. (Речь доступна на нескольких ресурсах, включая этот.) На данный момент, все среды исполнения JavaScript используют события и их обработчики.
Система событий, по своей сути, простой программный шаблон проектирования. Он начинается с соглашения о виде события и:
- имени-строки, используемой для собыйтия,
- типа структуры данных, используемых для представления ключевых свойств события,
- объекта JavaScript, который будет ‘вызывать’ это событие.
Шаблон реализуется с помощью:
- определение JavaScript-функции, которая принимает в качестве аргумента структуру данных, которая была согласована ранее, и
- регистрации функции с помощью имени-строки через объект, который будет вызывать событие.
Функция считается «слушателем» или «обработчиком», где оба именами взаимнозаменяемы. Этому шаблону можно легко следовать с использованием полностью пользовательского кода, как объяснено в статье о пользовательских событиях. Шаблон так же используется современными web-браузерами, определяющими множество событий, которые вызываются в ответ на пользовательский ввод или активность браузера.
Современные браузеры следуют событийному шаблону, используя стандартизированный подход. В качестве структуры данных для свойств события они применяют объект, полученный от объекта EventPrototype
. Для регистратрации функции, которая будет обрабатывать эту структуру даных, используется метод, называемый addEventListener
, который ожидает в качестве аргумента имя-строку, соответствующую типу события, и функцию-обработчика. В итоге, браузеры определяют огромное число объектов источников событий и широкое разнообразие типов событий, сформированных объектами.
К примеру, браузерный элемент button
предназначен для вызова события с именем 'click'
в ответ на нажатие кнопки мыши или прикосновене пальца к чувствительной части экрана. В HTML мы можем определить button
как:
<button>Click here to emit a 'click' event</button>
и, в коде JavaScript, мы можем сначала определить функцию для прослушивания этого события 'click'
:
var example_click_handler = function (ev){
var objKind = (ev instanceof Event) ? "EventPrototype" : "ObjectPrototype";
alert("We got a click event at " + ev. timeStamp + " with an argument object derived from: " + objKind );
};
и затем зарегестрировать свою функцию с помощью объекта Button
или со стороны скрипта, используя представление DOM (Document Object Model) на HTML-странице:
var buttonDOMElement = document.querySelector('#buttonOne'); buttonDOMElement.addEventListener('click', example_click_handler);
или на самой HTML-странице, добавив функцию как значение атрибута 'onclick'
, хотя этот вариант обычно используется на очень простых web-страницах.
Этот код полагается на соглашение о том, что существует некоторый вид события, называемый 'click'
, который вызовет все функции-слушатели (или ‘обработчи’) с объектом-аргументом Event
(на данный момент, в этом случае производный от объекта MouseEvent
) и будет запущен после манипуляций пользователя с элементами button
на HTML-странице. Код не имеет видимого воздействия, пока пользователь не использует кнопки, наводит указатель мыши на элемент HTML и нажимает на левую кнопку или устанавливает палец или стилус на некоторое место на экране, выше кнопки; когда это произойдет, buttonDOMElement
объекта JavaScript вызовет функцию example_click_handler
с объектом Event
в качестве аргумента. Функция, в свою очередь, исполнит любые действия, описанные программистом, в данном случае отрыв диалоговое окно HTML. Заметим, что обработчик имеет доступ к объекту ev
, так как тот передается в качестве аргумента; объект содержит информацию о событие, в частности время его возникновения.
Во втором варианте, интегрирован в web-страницу намного более современный JavaScript обернут в событийный вызов функции, чтобы убедиться, что код будет выполнен только тогда, когда HTML будет обработан и доступен для изменения или декорирования. Например, код может быть объявлен так:
var funcInit = function(){
}
document.addEventListener('DOMContentLoaded', funcInit);
так что этот код будет вызван только после того, как объект document
вызовет событие 'DOMContentLoaded'
, потому что HTML был проанализирован и были созданы объекты Javasript, представляющие каждый узел HTML-документа. Заметим, что в этом примере, код даже не передает аргумент события в функцию, потому что тому никогда не понадобится использовать данные, описанные в нем; скорее, код всего лишь нужно подождать, пока не случится событие.
Шаблон легко изучить и внедрить. Сложность с событиями возникает из-за необходимости изучить большое разнообразие событий, которые представлены в современных web-браузерах. Так же есть некоторая сложность в понимании, как писать обработчики, так как данный код работает ассинхронно и потенциально может быть вызван несколько раз подряд, но в немного другой ситуации.
Web-браузеры определяют большое число событий, поэтому не практично описывать их все. Event Reference призван содержать список стандартных событий, используемых в современных браузерах.
В общем случае, события различного вида выделяют, основываясь на объекте, который вызывает данное событие, включая:
- объект
window
, на случай изменения размера браузера, - объект
window.screen
, на случай изменения положения устройства, - объект
document
, включая загрузку, модификацию, пользовательское взаимодействие и разгрузку страницы, - объект в DOM (объектная модель документа) дереве, включая пользовательское взаимодействие или изменения,
- объект
XMLHttpRequest
, используемый для запросов сети, и - медиа-объекты, такие как
audio
иvideo
, когда медиа-потоковые плееры изменяют состояние.
хотя этот список на данный момент неполный.
Некоторые события, которые стоит отметить:
Заметка: Этот список событий будет нуждаться в доработке, чтобы соответствовать действительности; эта работа ожидает некоторой глобальной реорганизации в документе. Так же нужно найти хорошее объяснение событий, включая события во время загрузки страницы, таких, как частично описаных в этой статье или этом вопросе на Stack Overflow.
- глобальный объект
window
вызывает событие, называемое'load'
, когда страница закончила рендеринг, подразумевая, что все ресурсы были скачаны и применены, так что скрипт был выполнен и изображения отображены, - глобальный объект
window
вызывает событие, называемое'resize'
, когда высота или ширина окна браузера была измененеа пользователем, - объект DOM
document
, представляющий HTML-документ, вызывает событие, называемое'DOMContentLoaded'
, когда документ закончил загрузку, - объект узла DOM, такой как
div
илиbutton
, вызывающий событие, называемое'click'
, когда пользователь нажимает кнопку мыши, пока ее указатель находится поверх узла DOM на HTML-странице.
Web-браузер определяет множество событий различного вида. Каждое описание включает, как структуру данных, передающуюся в обработчика, объект, который наследуется от объекта EventPrototype
.
Частичная диаграма иерархии класса объекта событий:
Заметка: Эта диаграма неполная.
Web API Документация содержит страницу, описывающую объект событий, который так же включает известные события DOM, подклассы объекта Event
.
Три ресурса на MDN (Mozilla Developer Network) частично полезные для программистов, желащих работать с событиями:
DOM — Метод addEventListener
Перейти к основному содержанию- Самоучители
- HTML для начинающих
- CSS для начинающих
- Учебник HTML5
- Учебник Canvas
- XML для начинающих
- Учебник XML DTD
- Учебник по XML схемам
- Учебник XML DOM
- Учебник XPath
- Учебник по XSLT
- Учебник XML DTD
- Учебник по XML схемам
- Учебник XML DOM
- Справочники
- HTML теги
- CSS свойства
- Общие HTML атрибуты
- HTML атрибуты-события
- Элементы XML схемы
Как управлять event loop в JavaScript. Часть 1 — статьи на Skillbox
У каждого языка свой подход к параллельному вычислению данных. Например, в языках типа C++ оно передаётся в отдельный поток или даже процесс, который выполняется на другой машине.
Александр Кузьмин
ведущий программист, руководитель отдела клиентской разработки компании IT-Park
Если нужно сообщить потоку что-то вроде «посчитай вот это и положи результат в базу данных, а я когда-нибудь приду за ними», мы имеем дело с асинхронными операциями.
Это значит, что код, который их вызвал, не ждёт завершения выполнения, а продолжает исполняться дальше. Если же мы хотим дождаться результата, у многих современных языков есть операторы async и await для синхронизации исполняемого кода.
В JavaScript асинхронность — основной инструмент. Во времена до появления Node.JS он был практически единственным языком исполнения сценариев на клиенте в вебе (Internet Explorer поддерживал VB Script, но его никто не использовал). Сейчас невозможно представить интернет, где все запросы на сервер отправлялись бы с перезагрузкой страницы. Напротив, мы пришли к одностраничному вебу, в котором на стороне клиента происходит разрешение адресов страниц и отображение соответствующего контента.
Любые данные от сервера запрашиваются асинхронно: отправляется запрос (XMLHttpRequest или XHR), и код не ждёт его возвращения, продолжая выполняться. Когда же сервер отвечает, объект XHR получает уведомление об этом и запускает функцию обратного вызова — callback, который передали в него перед отправкой запроса.
Если придётся ждать, пока запрос придёт, JavaScript перестанет принимать любые события, а страница зависнет. Чтобы пользователь спокойно использовал веб-приложение, запрос выводят из текущего контекста выполнения. Операции, результата которых приходится ждать, прежде чем продолжать выполнение кода, называются блокирующими. О них — во второй части статьи.
Суть кроется в устройстве языка:
Если правильно использовать инструменты языка, то выполнение кода, которое происходит последовательно и в одном потоке, никак не мешает приёму событий и реакции на них — человек спокойно работает с интерфейсом, не замечая лагов, сбоев и зависаний.
Работа с экземпляром объекта Event (свойства, методы)
Категории: Events › Event Object
Свойство currentTarget экземпляра объекта Event идентифицирует текущий элемент, в котором в данный момент обрабатывается событие (в рамках фазы всплывания).
Возвращает: Элемент.
Категории: Events › Event Object
Содержит любые вспомогательные данные, если они были переданы обработчику события при его установке во втором параметре команды .bind() или .one().
Возвращает: Любые данные.
Категории: Events › Event Object
Позволяет определить, был ли вызван метод event.preventDefault(), отменяющий семантическое действие по умолчанию для данного события.
Возвращает: Логическое значение (Boolean).
Категории: Events › Event Object
Позволяет определить, был ли вызван метод event. stopImmediatePropagation(), предотвращающий всплытие объекта события и запуск последующих обработчиков
Возвращает: Логическое значение (Boolean).
Категории: Events › Event Object
Позволяет определить, был ли вызван метод event.stopPropagation(), предотвращающий всплытие объекта события.
Возвращает: Логическое значение (Boolean).
Категории: Events › Event Object
Содержит горизонтальную координату события от мыши относительно начала координат document (левого края страницы).
Возвращает: Число.
Категории: Events › Event Object
Содержит вертикальную координату события от мыши относительно начала координат document (верхнего края страницы).
Возвращает: Число.
Категории: Events › Event Object
Отменяет семантическое действие по умолчанию для события.
Возвращает: Значение не определено.
Категории: Events › Event Object
Идентифицирует DOM-элемент, косвенно участвующий в событии. Например, для mouseout — элемент, на который перешел курсор мыши.
Возвращает: Элемент.
Категории: Events › Event Object
Содержит последнее возвращенное обработчиком события значение, если оно было определено.
Возвращает: Объект.
Категории: Events › Event Object
Предотвращает всплытие объекта события вверх по DOM-дереву и запуск последующих обработчиков события, связанных с текущим элементом.
Категории: Events › Event Object
Предотвращает дальнейшее всплытие объекта события вверх по дереву DOM.
Категории: Events › Event Object
Свойство target экземпляра объекта Event идентифицирует DOM элемент, инициировавший событие (узел, в котором произошло событие ).
Возвращает: Элемент.
Категории: Events › Event Object
Содержит число миллисекунд с 1 января 1970 года до момента срабатывания события.
Возвращает: Число.
Категории: Events › Event Object
Определяет тип события.
Возвращает: Строка.
Категории: Events › Event Object
Для событий от клавиатуры и кнопок мыши определяет, какая клавиша или кнопка вызвала событие.
Возвращает: Строка.
Это не окончательный список в данной категории.
Раздел jQuery API наполняется. Приносим извинения за неудобства.
Событие при наведении мыши javascript код с пошаговой инструкцией
Доброго времени суток, любознательные подписчики и гости блога. Сегодня мы разберем с вами полезный раздел в прототипно-ориентированном сценарном языке, а именно событие при наведении мыши JavaScript.
Я хочу, чтобы вы хорошенько разобрались в таких событиях, как click, mouseup, mousedown, mouseover и других, поняли разницу между ними и научились их использовать для решения поставленных задач. Конечно же после каждого ключевого теоретического материала вы сможете найти программную реализацию примеров. Ну что ж, приступим!
Все сведенья о событиях мышки
Для мыши существует несколько событий, которые полностью охватывают всевозможные действия курсора на странице веб-приложения. Среди них есть те, которые срабатывают при нажатии на объект, наведении на него или движении указателя по открытому окну. Их все можно поделить на две группы: простые и комплексные (составные) события.
Начнем с простого
Для начала познакомимся с простыми событиями. Их всего пять. Для удобства я поместил описание каждого инструмента в таблицу, прикрепленную ниже.
Наименование | Описание |
mousedown | Названный event вызывается, когда одна из кнопок мышки нажата, но пока еще не отпущена. |
mouseup | А этот срабатывает уже при отпускании зажатой ранее кнопочки. |
mouseover | Вызывается при наведении курсора на обрабатываемый объект. |
mouseout | Обрабатывает действие выхода курсора из области элемента. |
mousemove | Любое движение указателя над определенной областью вызывает текущее событие. |
Ну а теперь для закрепления материала разберем пример. Я создал небольшую программку, в которой изменяются эмоции смайла при наведении и отведении курсора.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <!DOCTYPE html> <html> <head> <title>Пример наведения указателя на элемент страницы</title> <meta charset="utf-8"> </head> <body> <img name="pic" src="http://storage2. vsemayki.ru/images/0/0/514/514102/previews/sign_front_white_500.jpg" alt="Smiley"> <h3>Наведите на изображение курсор мыши и оно изменится.</h3> <h3>А теперь отведите его в сторону и понаблюдайте за изменениями</h3> <script> function ChangeOver(x) { x.src= 'http://storage2.vsemayki.ru/images/0/0/514/514012/previews/sign_front_white_500.jpg'; }; function ChangeOut(x) { x.src= 'http://storage2.vsemayki.ru/images/0/0/514/514102/previews/sign_front_white_500.jpg'; } </script> </body> </html> |
<!DOCTYPE html> <html> <head> <title>Пример наведения указателя на элемент страницы</title> <meta charset=»utf-8″> </head> <body> <img name=»pic» src=»http://storage2.vsemayki.ru/images/0/0/514/514102/previews/sign_front_white_500.jpg» alt=»Smiley»> <h3>Наведите на изображение курсор мыши и оно изменится. </h3> <h3>А теперь отведите его в сторону и понаблюдайте за изменениями</h3> <script> function ChangeOver(x) { x.src= ‘http://storage2.vsemayki.ru/images/0/0/514/514012/previews/sign_front_white_500.jpg’; }; function ChangeOut(x) { x.src= ‘http://storage2.vsemayki.ru/images/0/0/514/514102/previews/sign_front_white_500.jpg’; } </script> </body> </html>
Пришло время группировки
Теперь давайте перейдем к комплексным видам. Каждый из таких событий включает в себя несколько простых. При этом все составные части комплексного события не срабатывают одновременно, а выстраиваются в очередь. Поэтому вы иногда могли наблюдать такую ситуацию, что при быстром кликанье по, к примеру, пунктам меню веб-сайта нажатия иногда не срабатывают.
Почему же так? Ответ достаточно прост.
Итак, ниже перечислены составные события.Обработка событий происходит с какой-то максимально допустимой скоростью. И при этом не стоит забывать, что события обрабатываются по очереди. А значит при слишком быстром нажатии на разные элементы цепочка обработки может не выполниться полностью.
Наименование | Описание |
click | Вызывается при щелчке левой кнопкой мышки. Таким образом, здесь вначале срабатывает mousedown, а после mouseup. При этом порядок выполнения будет выглядеть следующим образом: mousedown → mouseup → click. |
contextmenu | Срабатывает при клике, однако если была нажата правая кнопка мыши. Цепочка событий аналогична предыдущей. |
Dblclick | Текущий элемент запустится на обработку после двойного щелчка на обрабатываемом объекте. Очередь вызовов будет выглядеть следующим образом (однако не в Internet Explorer 8-):
· mousedown; · mouseup+click; · mousedown; · mouseup+click+dblclick. |
Как вы уже поняли, комплексные события несколько упрощают жизнь разработчиков, включая в себя сразу набор необходимых простых event-ов. Вследствие этого на сегодняшний день никто не может представить обычной обработки кнопок или других элементов без того же click.
Для практического ознакомления с функционированием выше перечисленных событий я модифицировал предыдущее приложение. Проанализируйте результат моей работы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <!DOCTYPE html> <html> <head> <title>Пример наведения указателя на элемент страницы</title> <meta charset="utf-8"> </head> <body> <img src="http://storage2.vsemayki.ru/images/0/0/514/514102/previews/sign_front_white_500.jpg" alt="Smiley"> <button>Нажмите на меня один раз и смайл улыбнется!</button> <button ondblclick="Move()">А теперь нажмите на меня двойным кликом и смайл начнет двигаться!</button> <button oncontextmenu="Cry()">Если хочешь вернуться к начальному состоянию, то нажми на меня правой кнопкой!</button> <script> function Smile() { document. getElementById('pic').src= 'http://storage2.vsemayki.ru/images/0/0/514/514012/previews/sign_front_white_500.jpg'; }; function Cry() { document.getElementById('pic').src= 'http://storage2.vsemayki.ru/images/0/0/514/514102/previews/sign_front_white_500.jpg'; }; function Move() { document.getElementById('pic').src= 'https://otvet.imgsmail.ru/download/197747824_e708b2123d2b2d745d271f15cb144dcc_800.gif'; }; </script> </body> </html> |
<!DOCTYPE html> <html> <head> <title>Пример наведения указателя на элемент страницы</title> <meta charset=»utf-8″> </head> <body> <img src=»http://storage2.vsemayki.ru/images/0/0/514/514102/previews/sign_front_white_500.jpg» alt=»Smiley»> <button>Нажмите на меня один раз и смайл улыбнется!</button> <button ondblclick=»Move()»>А теперь нажмите на меня двойным кликом и смайл начнет двигаться!</button> <button oncontextmenu=»Cry()»>Если хочешь вернуться к начальному состоянию, то нажми на меня правой кнопкой!</button> <script> function Smile() { document. getElementById(‘pic’).src= ‘http://storage2.vsemayki.ru/images/0/0/514/514012/previews/sign_front_white_500.jpg’; }; function Cry() { document.getElementById(‘pic’).src= ‘http://storage2.vsemayki.ru/images/0/0/514/514102/previews/sign_front_white_500.jpg’; }; function Move() { document.getElementById(‘pic’).src= ‘https://otvet.imgsmail.ru/download/197747824_e708b2123d2b2d745d271f15cb144dcc_800.gif’; }; </script> </body> </html>
Как видите, все очень просто. Данные элементы легко вызывать в коде и привязывать их к определенным действиям.
На этой ноте я завершаю свой рассказ. Надеюсь вы почерпнули для себя что-то интересное, новое и полезное!
Если вы желаете и дальше читать мои статьи, а также узнавать о публикации новых, то подписывайтесь на обновления блога. И не забывайте делиться ссылками на понравившиеся темы с друзьями. До будущих встреч! Пока-пока!
С уважением, Роман Чуешов
Загрузка…
Прочитано: 827 раз
Событие | Описание | принадлежит | |
---|---|---|---|
прервать | Событие происходит, когда загрузка носителя прерывается | UiEvent, событие | |
послепечатка | Событие возникает, когда страница начала печататься или если диалоговое окно печати было закрыто. | Событие | |
анимационный конец | Событие происходит, когда анимация CSS завершена. | AnimationEvent | |
анимация | Событие происходит при повторении CSS-анимации | AnimationEvent | |
анимация старт | Событие происходит при запуске CSS-анимации | AnimationEvent | |
до печати | Событие происходит, когда страница собирается напечатать | Событие | |
перед выгрузкой | Событие происходит перед выгрузкой документа | UiEvent, Событие | |
размытие | Событие происходит, когда элемент теряет фокус | FocusEvent | |
канплей | Событие возникает, когда браузер может начать воспроизведение мультимедиа (когда он достаточно, чтобы начать) | Событие | |
может пройти через | Событие возникает, когда браузер может воспроизводить мультимедиа без остановка для буферизации | Событие | |
изменение | Событие возникает при изменении содержимого элемента формы, выбора или отмеченного состояния (для , | Событие | |
нажмите | Событие происходит, когда пользователь нажимает на элемент | MouseEvent | |
контекстное меню | Событие возникает, когда пользователь щелкает правой кнопкой мыши элемент, чтобы открыть контекстное меню | MouseEvent | |
копия | Событие возникает, когда пользователь копирует содержимое элемента | Буфер обмена Событие | |
разрез | Событие происходит, когда пользователь вырезает содержимое элемента | Буфер обмена Событие | |
dblclick | Событие происходит, когда пользователь дважды щелкает элемент | MouseEvent | |
сопротивление | Событие возникает при перетаскивании элемента | DragEvent | |
драгенд | Событие возникает, когда пользователь закончил перетаскивать элемент | DragEvent | |
Драгентер | Событие возникает, когда перетаскиваемый элемент попадает в цель перетаскивания | DragEvent | |
драглев | Событие происходит, когда перетаскиваемый элемент покидает цель перетаскивания | DragEvent | |
драговер | Событие возникает, когда перетаскиваемый элемент находится над целью перетаскивания | DragEvent | |
драгстарт | Событие возникает, когда пользователь начинает перетаскивать элемент | DragEvent | |
падение | Событие происходит, когда перетаскиваемый элемент отбрасывается на цель перетаскивания | DragEvent | |
изменение длительности | Событие происходит при изменении длительности носителя | Событие | |
закончились | Событие происходит, когда носитель подошел к концу (полезно для сообщений типа «спасибо за прослушивание»). | Событие | |
ошибка | Событие возникает при возникновении ошибки при загрузке внешнего файла | ProgressEvent, г. UiEvent, событие | |
фокус | Событие происходит, когда элемент получает фокус | FocusEvent | |
фокус в | Событие происходит, когда элемент собирается получить фокус | FocusEvent | |
фокус | Событие происходит, когда элемент собирается потерять фокус | FocusEvent | |
полноэкранный режим смены | Событие возникает, когда элемент отображается в полноэкранном режиме | Событие | |
полноэкранная ошибка | Событие возникает, когда элемент не может отображаться в полноэкранном режиме | Событие | |
хэш-обмен | Событие возникает при изменении привязки части URL-адреса | HashChangeEvent | |
ввод | Событие происходит, когда элемент получает ввод пользователя | InputEvent, Событие | |
недействительный | Событие возникает, когда элемент недействителен | Событие | |
нажатие клавиши | Событие возникает, когда пользователь нажимает клавишу | KeyboardEvent | |
нажатие клавиши | Событие возникает при нажатии пользователем клавиши | KeyboardEvent | |
клавиатура | Событие происходит, когда пользователь отпускает клавишу | KeyboardEvent | |
нагрузка | Событие происходит при загрузке объекта | UiEvent, Событие | |
загруженные данные | Событие происходит при загрузке медиа-данных | Событие | |
загруженные метаданные | Событие возникает при загрузке метаданных (например, размеров и продолжительности) | Событие | |
загрузка | Событие возникает, когда браузер начинает поиск указанного носителя. | ProgressEvent | |
сообщение | Событие возникает при получении сообщения через источник события | Событие | |
mousedown | Событие происходит, когда пользователь нажимает кнопку мыши над элементом | MouseEvent | |
mouseenter | Событие возникает, когда указатель перемещается на элемент | MouseEvent | |
мышиный лист | Событие возникает, когда указатель перемещается за пределы элемента | MouseEvent | |
mousemove | Событие происходит, когда указатель перемещается, когда он находится над элементом | MouseEvent | |
при наведении курсора мыши | Событие происходит, когда указатель перемещается на элемент или на один из его дочерних элементов | MouseEvent | |
мышь | Событие возникает, когда пользователь перемещает указатель мыши за пределы элемента или одного из его дочерних элементов | MouseEvent | |
мышь | Событие происходит, когда пользователь отпускает кнопку мыши над элементом | .MouseEvent | |
колесико мыши | Не рекомендуется.Использовать колесо событие вместо | WheelEvent | |
не в сети | Событие возникает, когда браузер начинает работать офлайн | Событие | |
онлайн | Событие возникает, когда браузер начинает работать в сети | Событие | |
открыто | Событие возникает при открытии соединения с источником события | Событие | |
скрыть страницу | Событие происходит, когда пользователь уходит с веб-страницы | PageTransitionEvent | |
страниц показать | Событие происходит, когда пользователь переходит на веб-страницу | PageTransitionEvent | |
паста | Событие возникает, когда пользователь вставляет некоторый контент в элемент | .Буфер обмена Событие | |
пауза | Событие возникает, когда воспроизведение мультимедиа приостановлено пользователем или программно | Событие | |
играть | Событие возникает, когда носитель был запущен или больше не приостановлен | Событие | |
играет | Событие возникает, когда медиа воспроизводится после приостановки или остановки для буферизации | Событие | |
popstate | Событие происходит при изменении истории окна | PopStateEvent | |
прогресс | Событие происходит, когда браузер находится в процессе получения медиафайлов. данные (загрузка медиа) | Событие | |
курс | Событие возникает при изменении скорости воспроизведения носителя | Событие | |
изменить размер | Событие происходит при изменении размера представления документа | UiEvent, Событие | |
сброс | Событие происходит при сбросе формы | Событие | |
свиток | Событие возникает при прокрутке полосы прокрутки элемента | UiEvent, Событие | |
поиск | Событие возникает, когда пользователь что-то вводит в поле поиска (для ) | Событие | |
искали | Событие происходит, когда пользователь заканчивает движение / переход к новой позиции. в СМИ | Событие | |
ищу | Событие происходит, когда пользователь начинает движение / переход к новой позиции в СМИ | Событие | |
выбрать | Событие происходит после того, как пользователь выбрал некоторый текст (для и | UiEvent, Событие | |
показать | Событие возникает, когда элемент | Событие | |
остановлено | Событие возникает, когда браузер пытается получить данные мультимедиа, но данные недоступны | Событие | |
склад | Событие происходит при обновлении области веб-хранилища | StorageEvent | |
представить | Событие происходит при отправке формы | Событие | |
приостановить | Событие возникает, когда браузер намеренно не получает медиаданные | Событие | |
время обновления | Событие возникает, когда позиция воспроизведения изменилась (например, когда пользователь перемотка вперед к другому месту в СМИ) | Событие | |
переключатель | Событие происходит, когда пользователь открывает или закрывает элемент |
Событие | |
сенсорный отмена | Событие возникает при прерывании касания | TouchEvent | |
Тушенд | Событие происходит, когда палец убирается с сенсорного экрана | TouchEvent | |
сенсорный ход | Событие возникает при перетаскивании пальца по экрану | TouchEvent | |
сенсорный запуск | Событие происходит при касании пальцем сенсорного экрана | TouchEvent | |
переходник | Событие происходит, когда переход CSS завершен. | TransitionEvent | |
разгружать | Событие возникает после выгрузки страницы (для ) | UiEvent, Событие | |
изменение объема | Событие возникает при изменении громкости носителя (включая настройку громкость до «отключения звука») | Событие | |
ожидание | Событие происходит, когда воспроизведение мультимедиа приостановлено, но ожидается, что оно возобновится (например, когда медиа останавливается для буферизации большего количества данных) | Событие | |
колесо | Событие возникает, когда колесо мыши наезжает вверх или вниз над элементом | WheelEvent | |
Свойство / метод | Описание | принадлежит | |
altKey | Возвращает, была ли нажата клавиша «ALT» при срабатывании события мыши. | MouseEvent | |
altKey | Возвращает, была ли нажата клавиша «ALT» при срабатывании ключевого события | KeyboardEvent, TouchEvent | |
animationName | Возвращает имя анимации | AnimationEvent | |
пузырей | Возвращает, является ли конкретное событие восходящим или нет. | Событие | |
кнопка | Возвращает, какая кнопка мыши была нажата при запуске события мыши | MouseEvent | |
кнопки | Возвращает, какие кнопки мыши были нажаты при срабатывании события мыши | MouseEvent | |
с возможностью отмены | Возвращает, можно ли предотвратить действие по умолчанию для события | Событие | |
charCode | Возвращает код символа Unicode клавиши, вызвавшей событие onkeypress | KeyboardEvent | |
изменить Касания | Возвращает список всех сенсорных объектов, состояние которых изменилось между предыдущее касание и это касание | TouchEvent | |
клиент X | Возвращает горизонтальную координату указателя мыши относительно текущего окна, когда событие мыши было инициировано | MouseEvent, TouchEvent | |
клиент | Возвращает вертикальную координату указателя мыши относительно текущего окна, когда событие мыши было инициировано | MouseEvent, TouchEvent | |
буфер обмена Данные | Возвращает объект, содержащий данные, затронутые буфером обмена. операция | Буфер обмена Данные | |
код | Возвращает код ключа, вызвавшего событие | KeyboardEvent | |
в составе | Возвращает, составлено событие или нет. | Событие | |
createEvent () | Создает новое событие | Событие | |
ctrlKey | Возвращает, была ли нажата клавиша «CTRL» при запуске события мыши. | MouseEvent | |
ctrlKey | Возвращает, была ли нажата клавиша «CTRL» при срабатывании ключевого события | KeyboardEvent, TouchEvent | |
текущая цель | Возвращает элемент, слушатели событий которого инициировали событие | Событие | |
данные | Возвращает вставленные символы | InputEvent | |
передача данных | Возвращает объект, содержащий перетаскиваемые / отбрасываемые данные, или вставлено / удалено | DragEvent, InputEvent | |
по умолчанию Предотвращено | Возвращает, был ли вызван метод preventDefault () для события | .Событие | |
deltaX | Возвращает величину горизонтальной прокрутки колеса мыши (ось x) | WheelEvent | |
deltaY | Возвращает величину вертикальной прокрутки колеса мыши (ось Y) | WheelEvent | |
deltaZ | Возвращает величину прокрутки колеса мыши для оси Z | WheelEvent | |
дельта Режим | Возвращает число, представляющее единицу измерения для значений дельты (пиксели, строки или страницы). | WheelEvent | |
деталь | Возвращает число, указывающее, сколько раз была нажата мышь | UiEvent | |
прошедшее время | Возвращает количество секунд, в течение которых выполнялась анимация. | AnimationEvent | |
прошедшее время | Возвращает количество секунд, в течение которых выполнялся переход. | ||
этап события | Возвращает, какая фаза потока событий в настоящее время оценивается | Событие | |
getTargetRanges () | Возвращает массив, содержащий целевые диапазоны, на которые будет влиять вставка / удаление | InputEvent | |
getModifierState () | Возвращает массив, содержащий целевые диапазоны, на которые будет влиять вставка / удаление | MouseEvent | |
inputType | Возвращает тип изменения (т.е.e «вставка» или «удаление») | InputEvent | |
составляет | Возвращает, создается ли состояние события или нет. | InputEvent, KeyboardEvent | |
доверено | Возвращает, является ли событие доверенным. | Событие | |
ключ | Возвращает значение ключа для ключа, представленного событием | .KeyboardEvent | |
ключ | Возвращает ключ измененного элемента хранилища | StorageEvent | |
ключ Код | Возвращает код символа Unicode для клавиши, вызвавшей событие onkeypress, или Код клавиши Unicode для клавиши, вызвавшей нажатие клавиши или событие onkeyup | KeyboardEvent | |
местонахождение | Возвращает расположение клавиши на клавиатуре или устройстве | KeyboardEvent | |
длина Вычисляемая | Возвращает, можно ли вычислить длину прогресса. | ProgressEvent | |
загружено | Возвращает количество загруженной работы | ProgressEvent | |
metaKey | Возвращает, была ли нажата клавиша «META» при возникновении события. | MouseEvent | |
metaKey | Возвращает, была ли нажата клавиша «meta» при срабатывании ключевого события | KeyboardEvent, TouchEvent | |
Механизм X | Возвращает горизонтальную координату указателя мыши относительно позиция последнего события mousemove | MouseEvent | |
ДвижениеY | Возвращает вертикальную координату указателя мыши относительно позиция последнего события mousemove | MouseEvent | |
новый Значение | Возвращает новое значение измененного элемента памяти | StorageEvent | |
новыйURL | Возвращает URL-адрес документа после изменения хэша. | HasChangeEvent | |
смещение X | Возвращает горизонтальную координату указателя мыши относительно положение края целевого элемента | MouseEvent | |
смещение Y | Возвращает вертикальную координату указателя мыши относительно положение края целевого элемента | MouseEvent | |
старое значение | Возвращает старое значение измененного элемента хранилища | StorageEvent | |
старыйURL | Возвращает URL-адрес документа до изменения хэша. | HasChangeEvent | |
без мусора | Событие возникает, когда происходит что-то плохое и медиафайл внезапно недоступен (например, неожиданно отключается) | ||
стр X | Возвращает горизонтальную координату указателя мыши относительно документа, когда событие мыши было инициировано | MouseEvent | |
стр. | Возвращает вертикальную координату указателя мыши относительно документа, когда событие мыши было инициировано | MouseEvent | |
сохраняется | Возвращает, была ли веб-страница кэширована браузером. | PageTransitionEvent | |
preventDefault () | Отменяет событие, если оно может быть отменено, что означает, что действие по умолчанию, относящееся к событию, не произойдет | Событие | |
объект недвижимости | Возвращает имя свойства CSS, связанного с анимацией или переходом. | AnimationEvent, TransitionEvent | |
псевдоэлемент | Возвращает имя псевдоэлемента анимации или перехода | AnimationEvent, TransitionEvent | |
регион | MouseEvent | ||
relatedTarget | Возвращает элемент, связанный с элементом, вызвавшим событие мыши | MouseEvent | |
relatedTarget | Возвращает элемент, связанный с элементом, вызвавшим событие | FocusEvent | |
повтор | Возвращает, удерживается ли клавиша повторно или нет | KeyboardEvent | |
экран X | Возвращает горизонтальную координату указателя мыши относительно экрана при возникновении события | MouseEvent | |
экранY | Возвращает вертикальную координату указателя мыши относительно экрана, когда событие было инициировано | MouseEvent | |
shiftKey | Возвращает, была ли нажата клавиша «SHIFT» при срабатывании события | MouseEvent | |
shiftKey | Возвращает, была ли нажата клавиша «SHIFT» при срабатывании ключевого события | KeyboardEvent, TouchEvent | |
состояние | Возвращает объект, содержащий копию записей истории | PopStateEvent | |
stopImmediatePropagation () | Запрещает другим слушателям того же события вызывать | Событие | |
остановить распространение () | Предотвращает дальнейшее распространение события во время потока событий | Событие | |
склад Площадь | Возвращает объект, представляющий затронутый объект хранилища | StorageEvent | |
цель | Возвращает элемент, вызвавший событие | Событие | |
targetTouches | Возвращает список всех сенсорных объектов, которые контактируют с поверхность и где событие touchstart произошло на том же целевом элементе, что и текущий целевой элемент | TouchEvent | |
Набор JavaScript — объект события
Объект события
Последнее обновление: 15 марта 2009 г.
Объект Event отслеживает различные события, происходящие на странице, например как пользователь перемещает мышь или щелкает ссылку, и позволяет вам реагировать на их внутри ваших скриптов.
Связанные руководства
Кроссбраузерный объект события
Модель событий реализована по-разному в IE и Firefox. В IE есть
явный объект window.event
, который регистрирует любые детали
событие (например: onclick
), когда оно происходит, в то время как в Firefox и другом W3c
совместимые браузеры, неявный объект Event передается автоматически
в функцию, связанную с обработчиком событий, который содержит
аналогичная информация о мероприятии.Вы можете уравнять
эта разница в функциях обработчика событий для доступа к событию
объект обычно с обнаружением в красном ниже:
document.onclick = function (e) {
var evt = window.event || e // evt
оценивается как window.event или неявный объект e, в зависимости от того, какой из них
определено
alert (evt. clientX) // сделаем что-нибудь с evt
}
Даже при равном доступе к объекту Event среди браузеров есть все еще проблема с IE и Firefox, поддерживающими разные свойства / методы внутри объекта Event.Ниже перечислены связанные свойства и методы отдельно для двух расходящихся объектов Event.
Объект события IE
В IE доступ к объекту события полностью осуществляется через явный объект
« window.event
». Он поддерживает следующие свойства:
Недвижимость
Недвижимость | Описание | W3C / Firefox Эквивалент? |
---|---|---|
altKey, ctrlKey, shiftKey | Логические свойства, указывающие были ли нажаты клавиши Alt, Ctrl и Shift во время событие. | То же. |
кнопка | Целое число, указывающее, какая мышь
кнопка была нажата или отпущена, 1 = влево, 2 = вправо, 4 = посередине. Если
нажатие нескольких кнопок, значение является суммой обеих кнопок,
например, 3 (1 + 2) для левого и правого. В браузерах Firefox то же самое
свойство возвращает немного другие числа. Вот пример:
документ.onmousedown = функция (e) { Если вы хотите определить, когда была нажата правая кнопка мыши
щелкнул, чтобы скрыть контекстное меню браузера по умолчанию из
появляется, просто возвращая документ. oncontextmenu = функция () { |
То же, но другое возвращаемые значения. |
отменить Пузырь | Установите значение true, чтобы предотвратить событие
бурление. В браузерах, отличных от IE, используйте e.stopPropagation () .
вместо. Чтобы отменить всплытие событий в браузерах, вам следует проверить поддержку e.stopPropagation () ,
и действуйте соответственно: функция
предотвращение пузырей (e) { |
stopPropagation () |
clientX, clientY | Возвращает координаты мыши в
время события относительно левого верхнего угла окна.Эти два свойства идентичны в модели событий W3C / Firefox.
также. В следующем примере в строке состояния отображаются текущие координаты мыши.
по мере движения: document.onmousemove = function (e) { |
То же. |
от элемента к элементу | Для событий mouseover и mouseout,
эти свойства указывают на элементы, из которых мышь покидает и перемещается
в соответственно.Модель событий W3C / Firefox использует другой
свойство « relatedTarget «, которое просто возвращает
соответствующий элемент в зависимости от типа события ( наведение курсора мыши
или mouseout ). См. « |
relatedTarget |
ключ Код | Свойство, указывающее Unicode для
клавиша нажата.Используйте String.fromCharCode (keyCode) для преобразования кода в
строка. Для получения полного обзора по обнаружению и реагированию на события клавиатуры, см. справочную страницу «События клавиатуры и мыши». |
charCode |
смещение X, смещение Y | Возвращает относительные координаты мыши. к позиционированному (абсолютному или относительному) элементу. Если событие произошло вне позиционированного элемента, чем левый верхний угол вместо него используется документ. | слой X, слой Y |
возврат Стоимость | Установите значение false, чтобы отменить любое значение по умолчанию.
действие, связанное с событием. В браузерах W3C / Firefox вызовите
вместо этого функция e.preventDefault () . |
preventDefault () |
srcElement | Элемент, из которого возникло событие, который
может отличаться от элемента, которому событие было явно назначено из-за
к всплытию событий.Рассмотрим пример, в котором вы назначаете щелчок
событие для divA , которое
содержит дочерний divB. Щелчок внутри divB,
event.srcElement возвращает divB, элемент, на котором произошло событие,
а не divA, элемент, которому было назначено событие. Firefox и
другие современные браузеры не поддерживают свойство srcElement, но
вместо этого эквивалентное свойство функция
myevent (e) { |
цель |
тип | Строка, указывающая тип события,
такие как « наведите указатель мыши на », « щелкните » и т. д. |
То же. |
Объект события Mozilla / Firefox
В Firefox + доступ к объекту Event осуществляется путем передачи параметра события в рассматриваемая функция обработчика событий.
Недвижимость
Недвижимость | Описание | IE Эквивалент? |
---|---|---|
altKey, ctrlKey, metaKey, shiftKey | Логические свойства, указывающие были ли нажаты клавиши Alt, Ctrl, Meta и Shift во время событие. | То же, но IE не поддержка «metaKey». |
пузырей | Логическое значение, указывающее, не пузыри событий. | НЕТ |
кнопка | Целое число, указывающее, какая мышь кнопка была нажата или отпущена, 0 = влево, 2 = вправо, 1 = посередине. Немного отличается в IE, как описано выше. | То же, но другое возвращаемые значения. |
с возможностью отмены | Логическое значение, указывающее, не событие нельзя отменить. | НЕТ |
charCode | Свойство, указывающее Unicode для нажатой клавиши.
Используйте String.fromCharCode (which) для преобразования кода в строку.Для получения полного обзора по обнаружению и реагированию на события клавиатуры, см. справочную страницу «События клавиатуры и мыши». |
ключ, код |
clientX, clientY | Возвращает координаты мыши в время события относительно левого верхнего угла окна. То же, что и в IE (подробнее см. Выше). | То же. |
текущая цель | Элемент, которому было присвоено событие.Рассмотрим пример, в котором вы назначаете событие щелчка для divA , которое
содержит дочерний divB. Щелчок внутри divB, e.currentTarget
ссылается на divA (элемент, которому было назначено событие), а
e.target возвращает divB, элемент, на котором произошло событие. |
НЕТ |
этап события | Целочисленное значение, указывающее, какое фаза потока событий, в которой это событие обрабатывается.Один из CAPTURING_PHASE (1), AT_TARGET (2) или BUBBLING_PHASE (3). | НЕТ |
слой X, слой Y | Возвращает относительные координаты мыши.
к позиционированному (абсолютному или относительному) элементу во время
событие. Если событие произошло
вне позиционированного элемента, чем левый верхний угол
вместо него используется документ. IE использует свойства offsetX
и offsetY взамен. |
смещениеX, смещение Y |
стр.X, стрY | Возвращает координаты мыши
относительно левого верхнего угла видимой страницы во время
событие. Они эквивалентны:
|
НЕТ |
relatedTarget | В событии « mouseover » указывает
узел, который оставила мышь.В событии « mouseout » он указывает
узел, в который переместилась мышь. « В следующем примере показан идентификатор элемента.
мышь приходит и перемещается во время « Демо (наведите указатель мыши на блоки ниже): Источник:
function showtofrom(e){ var statusdiv1=document.getElementById("statusfrom") document.body.onmouseover=showtofrom
|
fromElement, toElement |
экран X, экран Y | Возвращает координаты мыши относительно экрана при срабатывании события. | НЕТ |
цель | Элемент, из которого возникло событие, который
может отличаться от элемента, которому событие было явно назначено.Рассмотрим пример, в котором вы назначаете событие щелчка для divA , которое
содержит дочерний divB. Щелчок внутри divB,
e.target возвращает divB, элемент, на котором произошло событие. |
srcElement |
метка времени | Возвращает время (в миллисекундах с начала эпохи). событие было создано, например, при нажатии клавиши (onkeypress).Не все события возвращают отметку времени. | НЕТ |
тип | Строка, указывающая тип события,
например, « наведите указатель мыши на », « щелкните » и т. д. |
То же. |
который | NS4 / NS6 + унаследованное свойство, указывающее Unicode для
клавиша нажата. Идентичен « charCode «, за исключением этого
свойство работает и в NS4.. |
ключ, код |
Методы
Методы | Описание | IE Эквивалент? |
---|---|---|
preventDefault () | Отменяет любое значение по умолчанию
действие, связанное с событием. Чтобы сделать то же самое в IE,
вернуть false внутри функции, назначенной рассматриваемому событию
вместо. В следующем примере отключается действие по умолчанию для всех ссылки на странице, при нажатии на которую выполняется сценарий, т.е. для перехода по URL-адресу, указанному в атрибуте href: отключение функции ссылка (e) { var alllinks = document.getElementsByTagName («a») |
returnValue |
stopPropagation () | Установите значение true для предотвращения
событие от пузырьков. Тоже проделайте то же самое в IE, установите
event.cancelBubble вместо true. Рассмотрим divA
содержащий внутри него divB. Когда вы назначаете событие клика для divA,
щелчок внутри divB по умолчанию также вызовет событие из-за
всплывающее событие.Чтобы этого не произошло, вы можете вызвать Демо: Код: divB.onclick = function (e) { |
отменить Пузырь |
События JavaScript
Следующий список для всех обработчиков событий JavaScript содержит событие Window , событие формы , событие клавиатуры , событие мыши и событие Media .Эти события JavaScript поддерживаются в тегах HTML5.
Глобальные атрибуты событий JavaScript, которые добавляются к элементам HTML для определения события и выполнения при возникновении определенного действия.
Атрибуты событий окна JavaScript
JavaScript Window событий, запускаемых для объекта окна и применяемых в теге
Атрибуты | Значение | Описание | В HTML5? |
---|---|---|---|
после печати | js_script | Скрипт запускается после печати документа | НОВЫЙ |
до отпечатка | js_script | Скрипт запускается перед печатью документа | НОВЫЙ |
до выгрузки | js_script | Скрипт запускается перед выгрузкой документа | НОВЫЙ |
ошибка | js_script | Скрипт запускается при возникновении ошибки | НОВЫЙ |
в обмен на | js_script | Скрипт запускается при изменении документа | НОВЫЙ |
загрузка | js_script | Событие срабатывает после завершения загрузки страницы | |
в сообщении | js_script | Скрипт запускается, когда документ переходит в автономный режим | НОВЫЙ |
в сети | js_script | Сценарий запускается, когда документ появляется в сети | НОВЫЙ |
на странице скрыть | js_script | Скрипт запускается, когда окно документа скрыто | НОВЫЙ |
onpageshow | js_script | Скрипт запускается, когда окно документа становится видимым | НОВЫЙ |
onpopstate | js_script | Скрипт запускается при изменении истории окна документа | НОВЫЙ |
дальше | js_script | Скрипт запускается при выполнении документа повторно | НОВЫЙ |
по размеру | js_script | Событие возникает при изменении размера окна браузера | НОВЫЙ |
на складе | js_script | Скрипт запускается при обновлении области веб-хранилища | НОВЫЙ |
онундо | js_script | Скрипт запускается, когда документ выполняет отмену | НОВЫЙ |
под нагрузкой | js_script | Событие возникает при закрытии окна браузера |
События формы JavaScript
JavaScript События формы , вызванные выполнением некоторого действия внутри элементов формы HTML.
Атрибуты | Значение | Описание | В HTML5? |
---|---|---|---|
onblur | js_script | Событие срабатывает, когда элемент теряет фокус | |
на замену | js_script | Событие возникает при изменении значения элемента | |
контекстное меню | js_script | Событие срабатывает при срабатывании контекстного меню | НОВЫЙ |
onfocus | js_script | Событие срабатывает, когда элемент получает фокус | |
обменять | js_script | Событие срабатывает при изменении формы | НОВЫЙ |
onforminput | js_script | Событие возникает, когда форма получает поле ввода | |
на входе | js_script | Событие возникает, когда элемент получает поле ввода | НОВЫЙ |
недействительно | js_script | Событие возникает при недопустимом элементе | НОВЫЙ |
возврат | js_script | Событие срабатывает при нажатии на кнопку сброса формы | УДАЛИТЬ |
при выборе | js_script | Событие срабатывает после разрешения выбора текста в элементе | |
при подаче | js_script | Событие пожар при подаче формы |
События клавиатуры JavaScript
Атрибуты | Значение | Описание | В HTML5? |
---|---|---|---|
нажатие клавиши | js_script | Событие срабатывает при нажатии клавиши | |
onkeypress | js_script | Событие срабатывает при нажатии клавиши | |
onkeyup | js_script | Событие срабатывает при отпускании клавиши |
События мыши JavaScript
JavaScript Мышь событий, запускаемых действием мыши.
Атрибуты | Значение | Описание | В HTML5? |
---|---|---|---|
onclick | js_script | Событие срабатывает при щелчке мышью по элементу | |
ondblclick | js_script | Событие срабатывает при двойном щелчке мышью по элементу | |
ондраг | js_script | Скрипт запускается при перетаскивании элемента | НОВЫЙ |
драгенд | js_script | Скрипт запускается в конце операции перетаскивания | НОВЫЙ |
ондрагентер | js_script | Сценарий запускается, когда элемент перетаскивается на допустимую цель перетаскивания | НОВЫЙ |
ondragleave | js_script | Сценарий запускается, когда элемент покидает допустимую цель перетаскивания | НОВЫЙ |
вперед | js_script | Сценарий запускается, когда элемент перетаскивается на допустимую цель перетаскивания | НОВЫЙ |
ondragstart | js_script | Скрипт запускается при запуске операции перетаскивания | НОВЫЙ |
капля | js_script | Скрипт запускается при отбрасывании перетаскиваемого элемента | НОВЫЙ |
onmousedown | js_script | Событие срабатывает при нажатии кнопки мыши на элементе | |
onmousemove | js_script | Событие возникает при наведении указателя мыши на элемент | |
onmouseout | js_script | Событие срабатывает, когда указатель мыши перемещает элемент | |
на мышь над | js_script | Событие срабатывает при наведении указателя мыши на элемент | |
onmouseup | js_script | Событие срабатывает при отпускании кнопки мыши над элементом | |
колесо мыши | js_script | Событие срабатывает при вращении колеса мыши | НОВЫЙ |
в прокрутке | js_script | Событие возникает при прокрутке полосы прокрутки элемента | НОВЫЙ |
Медиа-события JavaScript
JavaScript Медиа События, инициируемые общими медиа-элементами, такими как ,
Атрибуты | Значение | Описание | В HTML5? |
---|---|---|---|
onabort | js_script | Скрипт запускается при прерывании элемента | |
oncanplay | js_script | Скрипт запускается, когда файл готов к воспроизведению | НОВЫЙ |
может пройти через | js_script | Скрипт запускается, когда файл воспроизводится полностью без паузы для буферизации | НОВЫЙ |
на срок обмена | js_script | Скрипт запускается при изменении длины носителя | НОВЫЙ |
без мусора | js_script | Скрипт запускается, когда что-то недоступно / отключается | НОВЫЙ |
завершено | js_script | Скрипт запускается, когда носитель достигает конечной позиции | НОВЫЙ |
ошибка | js_script | Скрипт запускается при возникновении ошибки время загрузки файла | НОВЫЙ |
загруженные данные | js_script | Скрипт запускается при загрузке носителя | НОВЫЙ |
загруженные метаданные | js_script | Скрипт запускается при загрузке метаданных | НОВЫЙ |
onloadstart | js_script | Скрипт запускается при загрузке файла | НОВЫЙ |
на паузу | js_script | Скрипт запускается, когда мультимедиа приостановлена | НОВЫЙ |
в игре | js_script | Сценарий запускается, когда носитель готов начать воспроизведение | НОВЫЙ |
в рабочем состоянии | js_script | Скрипт запускается, когда медиа действительно запускается для воспроизведения | НОВЫЙ |
в процессе | js_script | Скрипт запускается, когда браузер получает медиаданные | НОВЫЙ |
обменять | js_script | Скрипт запускается при изменении скорости воспроизведения | НОВЫЙ |
onreadystatechange | js_script | Скрипт запускается при каждом изменении состояния готовности | НОВЫЙ |
востребовано | js_script | Сценарий запускается при поиске значения атрибута, установленного в false, что означает, что поиск завершен. | НОВЫЙ |
в поиске | js_script | Сценарий запускается при поиске значения атрибута, установленного на true, что указывает на то, что поиск активен. | НОВЫЙ |
установлен | js_script | Сценарий запускается, когда браузер не может получить мультимедийные данные по какой-либо причине | НОВЫЙ |
включение приостановлено | js_script | Сценарий запускается, когда выборка мультимедийных данных останавливается до полной загрузки по любой причине | НОВЫЙ |
ontimeupdate | js_script | Скрипт запускается при изменении игровой позиции | НОВЫЙ |
по объему Изменение | js_script | Скрипт запускается каждый раз при изменении громкости | НОВЫЙ |
ожидает | js_script | Скрипт запускается, когда носитель приостановлен (для буферизации дополнительных данных) | НОВЫЙ |
Типы событий JavaScript — 8 основных типов для формирования ваших концепций JS!
Продолжая серию руководств по DataFlair JavaScript, сегодня мы узнаем о типах событий JavaScript.В этой статье мы увидим различные типы событий в JavaScript, на которые мы можем реагировать. Мы использовали событие мыши «щелчок» в нашем предыдущем руководстве, но в JavaScript доступно гораздо больше, что делает вашу страницу более отзывчивой и интерактивной. Давайте продолжим нашу тему событий с помощью типов событий, в зависимости от их применения.
Мы можем разделить события на три категории —
- Спецификация W3 DOM : W3C управляет всеми спецификациями событий DOM, кроме тех, которые имеют дело с элементами формы.
- HTML5 Спецификация: Сюда входят все события, специально используемые с HTML. К ним относятся отправка, ввод и т. Д. Новые дополнения к этой категории включают hashchange, beforeunload и т. Д.
- Объектные модели браузера : спецификации W3 еще не охватывают эти события. Они имеют дело с устройствами с сенсорным экраном, и события в этом разделе включают touchstart, touchend и т. Д.
Прежде чем двигаться дальше, я рекомендую вам проверить класс JavaScript
Типы событий JavaScript
Это первые 8 типы событий JavaScript, обсуждаемые ниже:
1.События пользовательского интерфейса
Они происходят в результате любого взаимодействия с окном браузера, а не со страницей HTML. В этих событиях мы присоединяем прослушиватель событий к объекту окна, а не к объекту документа. Ниже перечислены различные события пользовательского интерфейса.
Событие загрузки возникает, когда веб-страница завершает загрузку. Он также может запускать узлы элементов, такие как изображения, скрипты или объекты.
Это событие возникает до того, как пользователи покинут страницу, т. Е. Веб-страница выгружается.Выгрузка страницы обычно происходит из-за запроса новой страницы.
Это событие возникает, когда браузер обнаруживает ошибку JavaScript или несуществующий ресурс.
Он срабатывает, когда мы изменяем размер окна браузера. Но браузеры неоднократно запускают это событие, поэтому избегайте использования этого события для запуска сложного кода; это может сделать страницу менее отзывчивой.
Это событие возникает, когда пользователь прокручивает вверх / вниз окно браузера. Он может относиться ко всей странице или к определенному элементу на странице.
Вы проверяли популярный блог DataFlair об объектах JavaScript?
2. События фокуса и размытия
Эти события срабатывают, когда элементы HTML, с которыми вы можете взаимодействовать, получают / теряют фокус. Чаще всего они используются в формах и особенно полезны, когда вы хотите выполнить следующие задачи:
- Для отображения подсказок или отзывов пользователям, когда они взаимодействуют с элементом в форме. Подсказки обычно отображаются в элементах, отличных от того, с которым взаимодействует пользователь.
- Для запуска проверки формы, когда пользователь переходит от одного элемента управления к другому, не дожидаясь отправки формы.
Различные события фокусировки и размытия:
Это событие запускается для определенного узла DOM, когда элемент получает фокус.
Это срабатывает для определенного узла DOM, когда элемент теряет фокус.
Это событие аналогично событию фокуса. Но Firefox пока не поддерживает событие focusin.
Это то же событие, что и событие размытия.Это новый тип событий в JavaScript, поэтому сейчас он не поддерживается в Firefox.
События focus и blur используют подход захвата, в то время как события focusin и focusout используют как захват, так и пузырьковый подход потока событий.
Не забудьте ознакомиться с нашей статьей о фреймворках JavaScript
3. События мыши
Эти события запускаются, когда мышь перемещается или пользователь нажимает кнопку. Все элементы страницы поддерживают эти события и используют восходящий подход.Эти действия по-разному работают на устройствах с сенсорным экраном. Предотвращение стандартного поведения событий мыши может привести к неожиданным результатам. Различные события мыши в JavaScript следующие:
Это событие запускается, когда пользователь нажимает основную кнопку мыши (обычно левую). Это событие также возникает, если пользователь нажимает клавишу Enter на клавиатуре, когда элемент находится в фокусе.
Сенсорный экран: Касание экрана действует как одиночный щелчок левой кнопкой мыши.
Это событие возникает, когда пользователь быстро дважды щелкает основную кнопку мыши.
Сенсорный экран: Двойное касание экрана действует как двойной щелчок левой кнопкой мыши.
Доступность: Вы можете добавить два вышеуказанных события к любому элементу, но лучше применять их только к тем элементам, на которые обычно нажимают, иначе они не будут доступны через навигацию с клавиатуры. Все описанные ниже события мыши не могут быть запущены с клавиатуры.
Срабатывает, когда пользователь щелкает любую кнопку мыши.
Сенсорный экран: Вы можете использовать событие touchstart .
Срабатывает, когда пользователь отпускает кнопку мыши.
Сенсорный экран: Вы можете использовать событие touchend .
У нас есть отдельные события mousedown и mouseup для добавления функциональности перетаскивания или элементов управления при разработке игр. Не забывайте, что событие click представляет собой комбинацию событий mousedown и mouseup .
Он срабатывает, когда пользователь перемещает курсор, который раньше находился за пределами элемента, внутрь элемента.Можно сказать, что он срабатывает, когда мы наводим курсор на элемент.
Он срабатывает, когда пользователь перемещает курсор, который раньше находился внутри элемента, за пределы элемента. Можно сказать, что он срабатывает, когда курсор перемещается за пределы элемента.
События mouseover и mouseout обычно изменяют внешний вид графики на нашей веб-странице. Предпочтительной альтернативой этому является использование псевдокласса CSS: hover .
Он срабатывает, когда пользователь перемещает курсор вокруг элемента.Это событие часто запускается.
Это подходящее время, чтобы узнать о циклах JavaScripts. ДОЛЖЕН ПРОВЕРИТЬ !!
4. События клавиатуры
Эти события запускаются на любом устройстве, когда пользователь взаимодействует с клавиатурой.
Это событие возникает при изменении значения или (не срабатывает при удалении в IE9). Вы можете использовать keydown как запасной вариант в старых браузерах.
Срабатывает, когда пользователь нажимает любую клавишу на клавиатуре.Если пользователь удерживает клавишу, это событие запускается повторно.
Он срабатывает, когда пользователь нажимает клавишу, которая приводит к печати символа на экране. Это событие запускается повторно, если пользователь удерживает клавишу. Это событие не сработает для клавиш ввода, табуляции или стрелок; событие keydown будет.
Событие нажатия клавиши возникает, когда пользователь отпускает клавишу на клавиатуре.
События keydown и keypress срабатывают до появления символа на экране, keyup срабатывают после того, как он отображается.
Чтобы узнать, какая клавиша была нажата при использовании событий keydown и keypress, объект события имеет свойство keyCode . Это свойство вместо того, чтобы возвращать букву для этого ключа, возвращает ASCII-код нижнего регистра для этого ключа.
5. События формы
Эти события распространены при использовании форм на веб-странице. В частности, мы видим событие отправки в основном в форме проверки (проверки значений формы). Как описано в нашем руководстве; Особенности JavaScript , если пользователи пропускают какую-либо требуемую информацию или вводят неправильный ввод, проверка перед отправкой данных на сервер выполняется быстрее.В приведенном ниже списке поясняются различные формы событий , доступные пользователю.
Это событие запускается на узле, представляющем элемент , когда пользователь отправляет форму.
Срабатывает при изменении статуса различных элементов формы. Это лучший вариант, чем использование события щелчка, потому что щелчок — не единственный способ взаимодействия пользователей с формой.
Событие ввода очень часто встречается с элементами и
Мы часто используем события focus и blur с формами, но они также доступны в сочетании с другими элементами, такими как ссылки .
6. События мутации и наблюдатели
Всякий раз, когда структура дерева DOM изменяется, оно запускает событие мутации . Изменение в дереве может быть связано с добавлением или удалением узла DOM через ваш сценарий. Но у них есть альтернатива, которая их заменит: наблюдателей мутаций .Ниже приведены многочисленные события мутации в JavaScript.
Он запускается, когда сценарий вставляет новый узел в дерево DOM с помощью appendChild (), replaceChild (), insertBefore () и т. Д.
Это событие возникает, когда сценарий удаляет существующий узел из дерева с помощью removeChild (), replaceChild () и т. д.
Он срабатывает, когда структура дерева DOM изменяется, то есть происходят два вышеуказанных события.
-
DOMNodeInsertedIntoDocument
Это событие возникает, когда сценарий вставляет узел в дерево DOM как потомок другого узла, уже присутствующего в документе.
-
DOMNodeRemovedFromDocument
Это событие возникает, когда сценарий удаляет узел из дерева DOM как потомка другого узла, уже присутствующего в документе.
Проблема с событиями мутации заключается в том, что большое количество изменений на вашей странице может сделать вашу страницу медленной или невосприимчивой. Они также могут запускать другие прослушиватели событий, изменяя DOM и приводя к срабатыванию большего количества событий мутации. Это причина введения в скрипт наблюдателей за мутациями.
Наблюдатели за мутациями ждут, пока скрипт завершит свою текущую задачу, прежде чем реагировать, затем сообщают об изменениях в пакете (а не по одному). Это уменьшает количество событий, которые срабатывают при изменении дерева DOM с помощью сценария. Вы также можете указать, на какие изменения в DOM вы хотите, чтобы они отреагировали.
7. События HTML5
Это события уровня страницы, включенные в версии специализации HTML5. Новые события поддерживаются более новыми устройствами, такими как телефоны и планшеты.Они реагируют на такие события, как жесты и движения. Вы поймете их лучше после того, как усвоите вышеуказанные концепции, поэтому они пока не обсуждаются. Работайте с событиями ниже, а когда вы станете более опытным разработчиком, вы можете искать другие доступные события. Мы изучим следующие три события HTML5:
Это событие запускается, когда формируется дерево DOM, т.е. загружается скрипт. Сценарии запускаются до того, как все ресурсы, такие как изображения, CSS и JavaScript, загрузят .Вы можете присоединить это событие либо к объекту окна , либо к объекту документа .
Он срабатывает при изменении хэша URL без обновления всего окна. Хеши (#) связывают определенные части (известные как якоря ) на странице. Работает на объекте window ; объект события содержит свойства oldURL и newURL , содержащие URL-адреса до и после хеш-изменения.
Это событие запускается для объекта окна непосредственно перед выгрузкой страницы.Это событие должно быть только полезным для пользователя, а не побуждать его оставаться на странице. Вы можете добавить к своему событию диалоговое окно, в котором будет отображаться сообщение, предупреждающее пользователей о том, что их изменения не сохранены.
8. События CSS
Эти события запускаются, когда сценарий встречает элемент CSS. Поскольку CSS является важной частью веб-разработки, разработчики решили добавить эти события в js, чтобы упростить работу с CSS. Вот некоторые из наиболее распространенных событий CSS:
Это событие возникает, когда в программе заканчивается переход CSS.Полезно уведомить сценарий об окончании перехода, чтобы он мог предпринять дальнейшие действия.
Эти события запускаются, когда в программе запускается CSS-анимация.
Это событие происходит при повторении любой анимации CSS. С помощью этого события мы можем определить, сколько раз анимация повторяется в сценарии.
Срабатывает, когда в программе заканчивается CSS-анимация. Это полезно, когда мы хотим действовать сразу после завершения процесса анимации.
Резюме
На этом мы подошли к концу нашего руководства по типам событий JavaScript.В этой статье мы обсудили различные типы событий в JavaScript. Также мы понимали разные категории событий вместе с их описанием.
Следующая статья в нашей серии руководств по JavaScript DataFlair — JavaScript Array
Надеюсь, вам понравилась наша статья.
Остались вопросы? Не стесняйтесь поделиться с нами через раздел комментариев.
|