Создание нового события
В документации по JavaScript описывается возможность создания пользователем собственного события с помощью операторов Event или CustomEvent, но совершенно не объясняется способ, с помощью которого это можно сделать, ведь событие - это не какое-то имя (тип), а прежде всего - условие, которое должно выполняться. А информации о том, что из себя оно должно представлять и куда помещаться, мне пока не удалось найти. Наглядный пример пользовательского события - заполнение пустого контейнера (div) какими-то данными, после чего их должна обрабатывать функция, то есть условие примерно выглядит так: value.length > 0. Буду весьма признателен за разъяснение данного вопроса о возможности помещения куда-либо указанного условия при формировании события.
|
Х/з что и как ты читал...
Цитата:
Первым что сообщается - это нужно иметь/найти некий элемент на который можно навесить слушателя событий... Потом создается объект событие или пользовательское событие и его "вызывают" на том элементе <h1 id="elem">Привет для Васи!</h1> <script> // дополнительная информация приходит в обработчик вместе с событием elem.addEventListener("hello", function(event) { alert(event.detail.name); }); elem.dispatchEvent(new CustomEvent("hello", { detail: { name: "Вася" } })); </script> https://learn.javascript.ru/dispatch...lskie-sobytiya |
Цитата:
Событие как раз имеет определенный тип. И некое "имя", которое его и определяет при вызове на элементе... См.пример выше. |
Цитата:
https://learn.javascript.ru/dispatch-events |
Цитата:
Видно ты пока не понял сути событийности. Все действо выполняет слушатель события. А это функция. Что она будет делать - это уже решает разработчик. Когда "вызывать" событие также решает разработчик. Что передавать в событие - так же решает он. Т.ч. если ты готов делать тестовые примеры... Показывать их тут... Всегда можно показать на них что-то конкретное. |
Спасибо за обстоятельный ответ. Правильно ли я понимаю, что к традиционным событиям (например, нажатию на кнопку мыши или клавишу клавиатуры) можно добавить новое "событие" - прикрепление его к элементу?
|
Событие не добавляется к другим событиям... :)
Слушатели событий навешиваются на элементы которые к этому "приспособлены". Поскольку не всякий "элемент JS" может "получать" слушателя событий. |
Применительно к разделу Events/DOM/Window
ДОМ-элементы могут иметь слушатели событий... Также объект window тоже может иметь слушателей событий. |
Спасибо за разъяснение. Таким образом, само навешивание созданного "события" на подходящий для этого элемент и является проявлением указанного "события". К сожалению, использование создания события в такой трактовке для меня не представляется возможным.
|
Следует только учитывать, что события, вызываемые с помощью dispatchEvent абсолютно синхронны. Они не ставятся в очередь, а обрабатываются так, как будто мы просто вызываем функцию обработчик события
|
Часовой пояс GMT +3, время: 12:18. |