События в JavaScript. Часть 2

Суббота, 10 Декабрь 2016 17:42

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

Для того, чтобы полноценно работать с событиями, нам не обойтись без таких понятий, как объект события и доступ к самому объекту. Начнем с последнего. Доступ к объекту можно получить через ключевое слово this. Давайте сразу же посмотрим пример:

1.<button id="btn">Click me</button>
2.<script>
3.var btn = document.getElementById('btn');
4.btn.onclick = function(){
5.console.log(this);
6.};
7.</script>
 

А в консоли при клике мы увидим сам элемент:

События в JavaScript

Что это нам дает? Думаю, вы уже могли догадаться. Коль у нас есть доступ непосредственно к объекту, значит мы можем что-то сделать с этим объектом. Или с его окружением. Например, выведем текст на кнопке при клике:

1.var btn = document.getElementById('btn');
2.btn.onclick = function(){
3.console.log(this.textContent);
4.// или так
5.console.log(this.innerHTML);
6.};
 

А при желании мы можем и без проблем изменить текст на кнопке:

1.var btn = document.getElementById('btn');
2.btn.onclick = function(){
3.this.textContent = 'Кнопка нажата';
4.};
 

После клика на кнопке новый текст:

События в JavaScript

Также без проблем мы можем изменить оформление кнопки или просто назначить для нее класс, использовав оформление таблицы стилей:

1.var btn = document.getElementById('btn');
2.btn.onclick = function(){
3.this.textContent = 'Кнопка нажата';
4.this.className = 'btn btn-success';
5.};
 

События в JavaScript

Ключевое слово this вы не раз будете использовать на практике, поэтому важно понять, как с ним работать. Впрочем, в уроках и курсе по JavaScript этому уделено достаточно внимания.

Теперь давайте уделим немного внимания объекту события. Когда происходит событие, создается объект события, в который записывается различная информация (тип события, координаты курсора, элемент, на котором произошло событие и т.д.), которая может быть нам полезна.

Для того, чтобы получить объект события, достаточно передать его параметром в функцию-обработчик:

1.var btn = document.getElementById('btn');
2.btn.onclick = function(e){
3.console.log(e);
4.};
 

События в JavaScript

В консоли мы сразу же увидели тип события и координаты курсора мыши (относительно окна браузера) в момент возникновения события. Соответственно, эту же информацию мы можем получить, обратившись к каждому из свойств по отдельности:

1.btn.onclick = function(e){
2.console.log('Координата x:' + e.clientX);
3.console.log('Координата y:' + e.clientY);
4.console.log('Тип события:' + e.type);
5.};
 

События в JavaScript

Я кликнул дважды по кнопке, первый раз ближе к началу кнопки, второй раз — ближе к концу кнопки. Обратите внимание, как при этом изменилось свойство clientX — координата по оси X (по горизонтали).

А вот таким образом мы можем получить сам объект (некий аналог this получается):

1.btn.onclick = function(e){
2.console.log(e.currentTarget);
3.};
 

На этом мы, пожалуй, остановимся. В следующих статьях мы вернемся к событиям в JavaScript и работе с ними.

Источник: https://webformyself.com/sobytiya-v-javascript-chast-2/