Page 128 - 6108
P. 128

<input type="button" value="Натисни" id="elem">
                        elem.onclick = function(event) {
                          // виводимо тип події, елемент і координати кліку
                          console.log(event.type + " на " + event.currentTarget);
                          console.log(event.clientX + ":" + event.clientY);
                        }

                      Об’єкт Event являє собою будь-яку подію, яка відбувається в DOM; деякі
               з них створюються користувачами (наприклад, події для миші або клавіатури),
               а інші створюються API (наприклад, події, які вказують на завершення роботи
               анімації,  призупинення  відео  та  інше).  Існує  багато  типів  подій,  деякі  з  яких
               використовують  інші  інтерфейси  на  основі  основного  інтерфейсу  події.  Сам
               об’єкт  Event містить властивості та методи, які є загальними для всіх подій.
                      Повний список типів подій можна знайти за посиланням

                      https://developer.mozilla.org/en-US/docs/Web/API/Event
                      Об’єкт Event  дозволяє генерувати події  за допомогою конструктора.

                      event = new Event(eventName, eventInit);
                      eventName – імя події;

                      Обєкт EventInit, може мати наступні поля:
                     –  bubbles:  (необов'язкове)  Boolean,  що  вказує,  чи  спливає  подія.  За
               умовчанням false.
                     –  cancelable: (необов'язкове) Boolean, що вказує, чи можна відмінити
               дію за замовчюванням. За умовчанням false.
                     –  composed:  (необов'язкове)  Boolean,  що  вказує,  чи  буде  подія
               викликати слухачів за межами тіньового кореня. За умовчанням false.
                      Такі  події  часто  називають  штучним  подіями,  по  відношенню  до  подій
               створених браузером.

                     <div id="rect" onclick="changeColor(event)">Click me!</div>
                     function changeColor(event) {
                            event.currentTarget.style = "background-color: blue;"
                     }
                     let       event        =       new       Event('click',             {'bubbles':true,
               'cancelable':true});
                     rect. dispatchEvent(event);
                     Для  генерації  своїх,  нестандартних,  подій,  хоч  і  можна  використовувати
               конструктор  Event,  але  існує  і  специфічний  конструктор  CustomEvent.

               Технічно,  він  абсолютно  ідентичний  Event,  крім  невеликої  деталі:  у  другого
               аргументу-об'єкта  є  додаткова  властивість  detail,  в  якому  можна  вказувати
               інформацію для передачі в подію.

                     let event = new CustomEvent('build', {'bubbles':true,
               'cancelable':false, 'detail': elem.dataset.time});
                     function eventHandler(event) {
                      console.log('The time is: ' + event.detail);
                      }
   123   124   125   126   127   128   129   130   131   132   133