Обработка событий в Javascript
1. Javascript Events
Событие (event) является сигналом того, что что-то произошло. Например, вы нажимаете кнопку (button) или закрываете браузер... Все узлы node e DOM генерируют (generate) такие сигналы, но имеются другие сигналы помимо DOM, например ваше событие закрытия окна браузера.
Ниже является список самых полезных событий DOM:
Mouse Events:
Событие  | Описание  | 
click  | Событие происходит, когда пользователь кликает (click) на элемент (element).  | 
contextmenu  | Событие происходит, когда пользователь нажимает на правую кнопку мыши (right-clicks) на элемент, чтобы открыть context-menu.  | 
dblclick  | Событие происходит, когда пользователь делает двойное нажатие (double-clicks) на элемент.  | 
mousedown  | Событие происходит. когда пользователь нажимает на кнопку мыши над элементом.  | 
mouseup  | Событие происходит, когда пользователь отпускает кнопку мыши над элементом.  | 
mouseenter  | Событие происходит, когда курсор (pointer) перемещается на элемент.  | 
mouseleave  | Событие происходит, когда курсор (pointer) перемещается из элемента.  | 
mousemove  | Событие происходит, когда курсор перемещается над элементом.  | 
mouseout  | Событие происходит, когда пользователь перемещает курсор из элемента или выходит из одного из его подэлементов.  | 
mouseover  | Событие происходит, когда пользователь перемещает курсор в элемент или заходит в один из его подэлементов.  | 
События элемента Form.
Событие  | Описание  | 
submit  | Когда пользователь submit (Отправляет) содержание <form>.  | 
focus  | Когда пользователь фокусируется (focus) на один элемент, например <input>.  | 
blur  | Когда пользователь выходит из элемента, например <input>.  | 
События клавиши:
Событие  | Описание  | 
keydown  | Событие происходит, когда пользователь нажимает на клавишу (key).  | 
keyup  | Событие происходит, когда пользователь отпускает клавишу.  | 
keypress  | Событие происходит, когда пользователь нажимает (press) на клавишу (Выполнить 2 действия, нажать и отпустить).  | 
События Document.
Событие  | Описание  | 
DOMContentLoaded  | Кога содержание HTML скачано (loaded) и обработано. Модель DOM создана совершенно.  | 
События CSS:
Событие  | Описание  | 
animationstart  | Событие происходит, когда начинается процесс анимации CSS.  | 
animationend  | Событие происходит, когда завершается процесс анимации CSS.  | 
animationiteration  | Событие происходит, когда повторяется процесс анимации CSS.  | 
Обработка событий:
Чтобы обработать событие, вам нужно прикрепить событие обработчику (handler). Обработчик может быть функцией. Когда событие происходит, обработчик будет вызван для работы. Обработчик (handler) - это способ запуска кодов Javascript оответствующих действиям пользователя.
Обработчик (handler) может быть настроен внутри HTML со свойством (attribute) on{event}. Например событие click:
<input value="Click me" onclick="alert('Click!')" type="button">
<input value="Click me" onclick="someFunction()" type="button">Объект this представляет элемент, генерирующий событие.
<input value="Click me" onclick="someFunction(this)" type="button">Когда происходит событие, Javascript создает объект event и вы можете его использовать как значение параметра.
<input value="Click me" onclick="someFunction(event)" type="button">Вы также можете получить доступ в элемент, генерирующий событие через объект event.
var target =  event.target;2. Пример с событиями
Простое и часто встречающееся событие - это событие, при котором пользователи кликают (click) на элемент. Ниже приведен простой пример, пользователь кликает на кнопку "=", чтобы сложить 2 числа.
onclick-example.html
<!DOCTYPE html>
<html>
   <head>
      <title>Hello Javascript</title>
      <script type = "text/javascript">
         function doCalculate()  {
             var a = document.getElementById("a").value; // A String value
             var b = document.getElementById("b").value; // A String value
             var c = Number(a) + Number(b);
             document.getElementById("c").value = c;
         }
      </script>
   </head>
   <body>
      <h3>Click Event example</h3>
      <input id = "a" type="text" value= "100"/> <br/>
      + <br/>
      <input id = "b" type="text" value = "200"/> <br/>
      <button onclick="doCalculate()"> = </button> <br/>
      <input id = "c" type="text" value = ""/>
   </body>
</html>-
Объект this и есть элемент, которое генерирует событие. Вы можете передать (pass) данный объект в функцию обработки событий.
this-obj-example.html
<!DOCTYPE html>
<html>
   <head>
      <title>Event Example</title>
      <script type = "text/javascript">
         function changeSize(target)  {
             var random = Math.round(Math.random() * 100) + 200;
             target.style.width  = random + "px";
             target.style.height  = random + "px";
         }
      </script>
   </head>
   <body>
      <h3>Event with 'this' object</h3>
      <button onclick="changeSize(this)">Click Me to Change Size</button>
   </body>
</html>-
Когда событие происходит, объект event создается с помощью Javascript, он содержит информацию связанную с событием. Например, для события мыши объект event может содержать такую информацию, как положение мыши относительно браузера, положение мыши относительно элемента, который генерирует событие,... Вы можете использовать объект event для передачи (pass) в функцию обработки событий.
<input value="Click me" onclick="someFunction(event)" type="button">mouse-events-example.html
<!DOCTYPE html>
<html>
<head>
    <title>Javascript Mouse Events</title>
    <script src="mouse-events-example.js"></script>
    <style>
        .my-div {
            width: 290px;
            height: 100px;
            background: blue;
        }
    </style>
</head>
<body>
    <h3>Mouse Events (Enter, Move, Leave)</h3>
    <div class="my-div"
               onmouseenter="mouseenterHandler(event)"
               onmouseleave="mouseleaveHandler(event)"
               onmousemove="mousemoveHandler(event)">
    </div>
    <h3>Mouse position</h3>
    <div style="color:red;" id="position-div">
    </div>
    <h3>Statistics</h3>
    <div style="color:red;" id="statistics-div">
    </div>
</body>
</html>mouse-events-example.js
var enterCount = 0;
var moveCount = 0;
var leaveCount = 0;
function mouseleaveHandler(evt) {
    leaveCount += 1;
    showPosition(evt);
    showStatistics();
}
function mouseenterHandler(evt) {
    enterCount += 1;
    showPosition(evt);
    showStatistics();
}
function mousemoveHandler(evt) {
    moveCount += 1;
    showPosition(evt);
    showStatistics();
}
function showPosition(evt) {
    var html = "offsetX: " + evt.offsetX +"<br/>" //
               +
               "offsetY: " + evt.offsetY;
    document.getElementById("position-div").innerHTML = html;
}
function showStatistics() {
    var html =
        "enterCount:" + enterCount + "<br/>" //
        +
        "moveCount:" + moveCount + "<br/>" //
        +
        "leaveCount:" + leaveCount;
    document.getElementById("statistics-div").innerHTML = html;
}-
Вы можете получить доступ к элементу, генерирующему событие через объект event.
event-obj-example.html
<!DOCTYPE html>
<html>
   <head>
      <title>Event Example</title>
      <script type = "text/javascript">
         function changeSize(evt)  {
             var target = evt.target;
             var random = Math.round(Math.random() * 100) + 100;
             target.style.width  = random + "px";
             target.style.height  = random + "px";
         }
      </script>
   </head>
   <body>
      <h3>Access 'target' object via 'event' object</h3>
      <button onclick="changeSize(event)">Click Me to Change Size</button>
   </body>
</html>-
Пример функции обработки с несколькими параметрами.
multi-params-example.html
<!DOCTYPE html>
<html>
   <head>
      <title>Event Example</title>
      <script type = "text/javascript">
         function changeSize(borderColor, target, evt, bgColor)  {
             var random = Math.round(Math.random() * 100) + 100;
             target.style.width  = random + "px";
             target.style.height  = random + "px";
             target.style.borderColor = borderColor;
             target.style.backgroundColor = bgColor;
         }
      </script>
   </head>
   <body>
      <h3>A Handler has multiple parameters</h3>
      <a href="">Reset</a> <br/><br/>
      <button onclick="changeSize('red', this, event, 'green')">Click Me</button>
   </body>
</html>Pуководства ECMAScript, Javascript
- Введение в Javascript и ECMAScript
 - Быстрый старт с Javascript
 - Диалоговое окно Alert, Confirm, Prompt в Javascript
 - Быстрый запуск с JavaScript
 - Переменные (Variable) в JavaScript
 - Битовые операции
 - Массивы (Array) в JavaScript
 - Циклы в JavaScript
 - Руководство JavaScript Function
 - Руководство JavaScript Number
 - Руководство JavaScript Boolean
 - Руководство JavaScript String
 - Заявление if/else в JavaScript
 - Заявление Switch в JavaScript
 - Обработка ошибок в JavaScript
 - Руководство JavaScript Date
 - Руководство JavaScript Module
 - Функция setTimeout и setInterval в JavaScript
 - Руководство Javascript Form Validation
 - Руководство JavaScript Web Cookie
 - Ключевое слово void в JavaScript
 - Классы и объекты в JavaScript
 - Техника симулирования класса и наследственности в JavaScript
 - Наследование и полиморфизм в JavaScript
 - Понимание Duck Typing в JavaScript
 - Руководство JavaScript Symbol
 - Руководство JavaScript Set Collection
 - Руководство JavaScript Map Collection
 - Понимание JavaScript Iterable и Iterator
 - Руководство Регулярное выражение JavaScript
 - Руководство JavaScript Promise, Async Await
 - Руководство Javascript Window
 - Руководство Javascript Console
 - Руководство Javascript Screen
 - Руководство Javascript Navigator
 - Руководство Javascript Geolocation API
 - Руководство Javascript Location
 - Руководство Javascript History API
 - Руководство Javascript Statusbar
 - Руководство Javascript Locationbar
 - Руководство Javascript Scrollbars
 - Руководство Javascript Menubar
 - Руководство JavaScript JSON
 - Обработка событий в Javascript
 - Руководство Javascript MouseEvent
 - Руководство Javascript WheelEvent
 - Руководство Javascript KeyboardEvent
 - Руководство Javascript FocusEvent
 - Руководство Javascript InputEvent
 - Руководство Javascript ChangeEvent
 - Руководство Javascript DragEvent
 - Руководство Javascript HashChangeEvent
 - Руководство Javascript URL Encoding
 - Руководство Javascript FileReader
 - Руководство Javascript XMLHttpRequest
 - Руководство Javascript Fetch API
 - Разбор XML в Javascript с помощью DOMParser
 - Введение в Javascript HTML5 Canvas API
 - Выделение кода с помощью библиотеки Javascript SyntaxHighlighter
 
                Show More