ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события Π² JavaScript

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ событии?

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ событии Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ посрСдством ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события ( Event ). Π”Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создаёт Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΊΠΎΠ³Π΄Π° это событиС происходит. Π’ Π½Π΅Π³ΠΎ ΠΎΠ½ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. НапримСр, для события click : какая клавиша Π½Π°ΠΆΠ°Ρ‚Π°, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ курсора ΠΈ Π΄Ρ€.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ события Π² соотвСтствии со стандартом всСгда пСрСдаётся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ посрСдством ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

НапримСр, Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² консоль ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° элСмСнт:

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события

Бвойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Event :

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Event :

Бвойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события MouseEvent

НапримСр, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ курсора ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ (событиС mousemove ):

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ элСмСнты Π²Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°, Ρ‚ΠΎ курсор Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв всСгда находится ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°Π΄ нСсколькими элСмСнтами. Но взаимодСйствиС всСгда осущСствляСтся с Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ располоТСн Π³Π»ΡƒΠ±ΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… (Ρ‚.Π΅. Π±Π»ΠΈΠΆΠ΅ ΠΊ Π½Π°ΠΌ ΠΏΠΎ оси Z). Если элСмСнты находятся Π½Π΅ Π² основном ΠΏΠΎΡ‚ΠΎΠΊΠ΅, Ρ‚ΠΎ Π² этом случаС с Ρ‚Π΅ΠΌ, Ρƒ ΠΊΠΎΠ³ΠΎ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства z-index. Но Ссли элСмСнты ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ z-index, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π±Π»ΠΈΠΆΠ΅ ΠΊ Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΈΠ· Π½ΠΈΡ… Π³Π»ΡƒΠ±ΠΆΠ΅ располоТСн.

НапримСр, ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ элСмСнтС (Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ id ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ создаёт событиС mousemove :

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

Бвойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события KeyboardEvent

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ KeyboardEvent позволяСт ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ:

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ target ΠΎΡ‚ currentTarget

Бобытия Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‚. Из-Π·Π° этого:

НапримСр, рассмотрим этот ΠΊΠΎΠ΄:

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

ИспользованиС target и relatedTarget

Бвойство relatedTarget ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для опрСдСлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π»ΠΈ, связанной с событиСм.

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

Π—Π°Π΄Π°Ρ‡ΠΈ

1. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° Π½Π΅ΠΌ

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

НСобходимо Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ JavaScript сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° элСмСнтС ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· DOM.

2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиш Β«WASDΒ»

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиш Β«WASDΒ» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ элСмСнт #box ΠΏΠΎ страницС.

3. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ

ΠΠ°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиш Z ΠΈ X ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части экрана сообщСниС.

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

Π‘ΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ сообщСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅ события

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ – это сигнал ΠΎΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. ВсС DOM-ΡƒΠ·Π»Ρ‹ ΠΏΠΎΠ΄Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ сигналы (хотя события Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² DOM).

Π’ΠΎΡ‚ список самых часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… DOM-событий, ΠΏΠΎΠΊΠ° просто для ознакомлСния:

Бобытия ΠΌΡ‹ΡˆΠΈ:

Бобытия Π½Π° элСмСнтах управлСния:

ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ события:

Бобытия Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

CSS events:

БущСствуСт мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… событий. ΠœΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ ΠΈΡ… Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ….

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая сработаСт, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ событиС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

ИмСнно благодаря ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ JavaScript-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π•ΡΡ‚ΡŒ нСсколько способов Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. БСйчас ΠΌΡ‹ ΠΈΡ… рассмотрим, начиная с самого простого.

ИспользованиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° HTML

Атрибут HTML-Ρ‚Π΅Π³Π° – Π½Π΅ самоС ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ мСсто для написания большого количСства ΠΊΠΎΠ΄Π°, поэтому Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ JavaScript-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Ρ‘ Ρ‚Π°ΠΌ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ запускаСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ countRabbits() :

ИспользованиС свойства DOM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, elem.onclick :

Если ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π·Π°Π΄Π°Π½ Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ HTML-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, создаёт Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· содСрТимого Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈ записываСт Π² свойство.

Π­Ρ‚ΠΎΡ‚ способ, ΠΏΠΎ сути, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ всСгда хранится Π² свойствС DOM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ – лишь ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов Π΅Π³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π­Ρ‚ΠΈ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ:

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· JavaScript ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°:

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΈ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Доступ ΠΊ элСмСнту Ρ‡Π΅Ρ€Π΅Π· this

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события this ссылаСтся Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° Ρ‚ΠΎΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, ΠΊΠ°ΠΊ говорят, «висит» (Ρ‚.Π΅. Π½Π°Π·Π½Π°Ρ‡Π΅Π½) ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

Π’ ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅ button Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ своё содСрТимоС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ this.innerHTML :

ЧастыС ошибки

Если Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с событиями, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹.

…А Π²ΠΎΡ‚ Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ свойства, скобки Π½ΡƒΠΆΠ½Ρ‹:

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ свойство:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Π½Π΅ строки.

НазначСниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° строкой elem.onclick = «alert(1)» Ρ‚Π°ΠΊΠΆΠ΅ сработаСт. Π­Ρ‚ΠΎ сдСлано ΠΈΠ· сообраТСний совмСстимости, Π½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π½Π΅ рСкомСндуСтся.

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ setAttribute для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π’Π°ΠΊΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚:

РСгистр DOM-свойства ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

addEventListener

НапримСр, ΠΎΠ΄Π½Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‘ подсвСчСнной, Π° другая – Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ сообщСниС.

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для этого. Но Π½ΠΎΠ²ΠΎΠ΅ DOM-свойство ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅:

Бинтаксис добавлСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°:

Для удалСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ removeEventListener :

Для удалСния Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ которая Π±Ρ‹Π»Π° Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π°.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ Π½Π΅ сработаСт:

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½, Ρ‚.ΠΊ. Π² removeEventListener ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Π½Π΅ Ρ‚Π° ΠΆΠ΅ функция, Π° другая, с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΎ это Π½Π΅ Π²Π°ΠΆΠ½ΠΎ.

ΠœΠ΅Ρ‚ΠΎΠ΄ addEventListener позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ нСсколько ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎ событиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ addEventListener Π±ΠΎΠ»Π΅Π΅ унивСрсалСн. Π₯отя Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΡ… событий ΠΌΠ΅Π½ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ, это скорСС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‡Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ события

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ событиС, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. НС просто Β«ΠΊΠ»ΠΈΠΊΒ» ΠΈΠ»ΠΈ Β«Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши», Π° Ρ‚Π°ΠΊΠΆΠ΅ – ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ указатСля ΠΌΡ‹ΡˆΠΈ, какая клавиша Π½Π°ΠΆΠ°Ρ‚Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Когда происходит событиС, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ события, записываСт Π² Π½Π΅Π³ΠΎ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ Π΅Π³ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅ дСмонстрируСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΌΡ‹ΡˆΠΈ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события:

НСкоторыС свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° event :

Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… свойств, Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… Π³Π»Π°Π²Π°Ρ….

ΠžΠ±ΡŠΠ΅ΠΊΡ‚-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ: handleEvent

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс для этого:

ΠœΠ΅Ρ‚ΠΎΠ΄ handleEvent Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всю Ρ€Π°Π±ΠΎΡ‚Ρƒ сам. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Ρ‹ ΠΏΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² событий, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠΎΠ΄Π°.

Π˜Ρ‚ΠΎΠ³ΠΎ

Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ способа назначСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий:

HTML-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ JavaScript Π² HTML-Ρ‚Π΅Π³Π΅ выглядит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ странно. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΌ Π½Π΅ напишСшь.

DOM-свойства Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ события. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях с этим ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ.

НС Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ – ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ события ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит подробности ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

ΠœΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ большС ΠΎ событиях ΠΈ ΠΈΡ… Ρ‚ΠΈΠΏΠ°Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ….

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

НаТатиС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² JavaScript (событиС ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ)

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ всСм Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Ρ программирования. Π­Ρ‚ΠΎ довольно простой ΡƒΡ€ΠΎΠΊ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ Π² JavaScript, ΠΊΠ°ΠΊ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ. Π½Π΅ смотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ Π² JS, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π½Π° страницС Π΅ΡΡ‚ΡŒ нСкая ΠΊΠ½ΠΎΠΏΠΊΠ°.

Она ΠΏΠΎΠΊΠ° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ повСсили Π½Π° Π½Π΅Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ события. И Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Ѐункция ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² JavaScript

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ создали, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ напишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, с ΠΈΠΌΠ΅Π½Π΅ΠΌ.

А ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π’Ρ‹Π²ΠΎΠ΄ Π½Π° страницу ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² JS

БоотвСтствСнно ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² JavaScript ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ alert, Π½ΠΎ ΠΈ всС, Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСр, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнты Π½Π° страницС, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ Π΅Ρ‰Π΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. напишСм Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° страницу случайноС число. Для этого ΠΏΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ элСмСнт DIV с классом sum, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ JavaScript Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

function randomSum(min, max)

Для ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ:

По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ΄ Π½Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Π·Π½Π°Ρ‡Π½ΠΎΠ΅ число ΠΎΡ‚ 1000 Π΄ΠΎ 9999 Π² случайном порядкС. Π­Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… min ΠΈ max.

НаТатиС ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π² JS

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠ»ΠΈΠΊΠ° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π² JavaScript отличаСтся ΠΎΡ‚ Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ стандартноС контСкстноС мСню Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Но ΠΌΡ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΡƒΠ±Ρ€Π°Ρ‚ΡŒ, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Ρ‚ΡŒ своС дСйствиС.

Π—Π°ΠΏΡ€Π΅Ρ‰Π°Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ контСкстного мСню ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ:

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ Π² JavaScript ΠΈ усваиваСтся Π±Π΅Π· особых трудностСй. Π’ дальнСйшСм Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. НапримСр ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ сумму, ΠΊΠ°ΠΊ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ расчСта стоимости. НадСюсь этот ΡƒΡ€ΠΎΠΊ оказался для вас ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ. Если ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ вопросы, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΡ… Π² коммСнтариях.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅:

Как всСгда интСрСсно ΠΈ доступно. НамСдни, писал ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ расчёта Ρ†Π΅Π½Ρ‹ мСталличСской Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠΈ Π½Π° JS ΠΈ пытался Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ срабатываниС Π΄Π²ΡƒΡ… Ρ„ΡƒΠ΅ΠΊΡ†ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π—Π°ΠΏΡƒΡΠΊΠ°Π»ΠΈΡΡŒ Π΄Π²Π° массива Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ дальшС использовались для расчётов. НС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΈΡˆΡƒΡ‚, Ρ‡Ρ‚ΠΎ это Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΡƒΠ΅Ρ‚ вашС ΠΌΠ½Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ с запуском 2-Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² JS Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ. ΠŸΡ€ΠΎΡΡ‚ΠΎ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρƒ вас ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π² ΠΊΠΎΠ΄Π΅.

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Ρƒ Π΅ΡΡ‚ΡŒ 2 Π³Ρ€ΡƒΠΏΡ‹ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π΄ΠΈΠΎ ΠΊΠ½ΠΎΠΏΠΎΠΊ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ value. Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ поставив чСкбоксы Π² Ρ€Π°Π΄ΠΈΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… значСниня value Π² этом ΠΊΠΎΠ΄Π΅ дальшС ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ РАББЧИВАВЬ. КаТдая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ пСрСбираСтся Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈ опрСдСляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹. На самом Π΄Π΅Π»Π΅, записав ΠΎΠ±Π° Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅ удаётся дальС Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями вСлью. Если Ρ€Π°Π΄ΠΈΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π΅ зависимыС, Ρ‚ΠΎΠ³Π΄Π° всё Π² порядкС, Π° Ссли с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ получаСтся.

НС совсСм понял. МоТно ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ this ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ†ΠΈΠΊΠ».

Бпасибо. Π‘ΡƒΠ΄Ρƒ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.

ВсплываСт модальноС ΠΎΠΊΠ½ΠΎ подписки ΠΈ зависаСт. Π”Π°Π»ΡŒΡˆΠ΅ Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚.

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток! Π° ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ Π² случаС ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС нСсколько Ρ€Π°Π· Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ div-Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ajax?
ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π΅ΡΡ‚ΡŒ страница строки/столбцы. Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· столбцов (для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки) Π΅ΡΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΈ Ρ‚Ρ‚Π½. По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ происходит ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. php Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ ΠΎΡ‚Π²Π΅Ρ‚ отобраТаСтся Π² div ΠΏΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ. Но такая конструкция срабатываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта

$.ajax( <
type: Β«POSTΒ»,
url: url,
data: form.serialize(),
success: function(html) <
$(Β»).html(html);>>);
return false;
>);

Π’Π°ΠΌ скорСС всСго Π½ΡƒΠΆΠ΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Json. Об этот я писал здСсь.

Π”Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· эту ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. php Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ возвращая Π½ΡƒΠΆΠ½ΡƒΡŽ строку. ПослС Π² строкС success Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ‚ php присваиваСтся Π½Π΅ΠΊΠΎΠΌΡƒ div-Ρƒ Π½Π° страницС. Но Ссли это ΠΊΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ нСсколько Ρ€Π°Π· Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС Ρ‚ΠΎ всС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΆΠ΅ ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ (я Ρ‚Π°ΠΊ понимаю, Ρ‡Ρ‚ΠΎ это ΠΈΠ· Π·Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ id-шников)

БоотвСтствСнно id Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² события

Бобытия β€” это дСйствия ΠΈΠ»ΠΈ случаи, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π²Π°ΠΌΠΈ систСмС, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… систСма сообщаСт Π²Π°ΠΌ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ с Π½ΠΈΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π²Π΅Π±-страницС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° это дСйствиС, ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ обсудим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, связанныС с событиями, ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ являСтся ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ источником ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ β€” здСсь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π° этом этапС.

ΠŸΡ€Π΅Π΄ΠΏΠΎΡΡ‹Π»ΠΊΠΈ:Базовая ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΡΡ‚ΡŒ, Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ HTML ΠΈ CSS, ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги Π² JavaScript.
Π—Π°Π΄Π°Ρ‡Π°:ΠŸΠΎΠ½ΡΡ‚ΡŒ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ событий, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ… ΠΈ ΠΊΠ°ΠΊ события ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах программирования.

БСрия ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… событий

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ события систСма Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ сигнал, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ автоматичСски ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ дСйствия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄), ΠΊΠΎΠ³Π΄Π° происходит событиС. НапримСр, Π² аэропорту, ΠΊΠΎΠ³Π΄Π° Π²Π·Π»Ρ‘Ρ‚Π½ΠΎ-посадочная полоса свободна для Π²Π·Π»Ρ‘Ρ‚Π° самолёта, сигнал пСрСдаётся ΠΏΠΈΠ»ΠΎΡ‚Ρƒ, ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΊ Π²Π·Π»Ρ‘Ρ‚Ρƒ.

ΠΊΠ°ΠΊΠΎΠ΅ свойство ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ js

Π’ Web события Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΊΠ½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ элСмСнту, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π½Π΅ΠΌ находится. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ элСмСнт, Π½Π°Π±ΠΎΡ€ элСмСнтов, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ HTML, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅, ΠΈΠ»ΠΈ всС ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. БущСствуСт мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ событиях ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ ΠΏΠΎ событиям.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π΅Π±-события Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ основного языка JavaScript. Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ JavaScript-API, встроСнных Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

JavaScript выглядит Ρ‚Π°ΠΊ:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ событиС ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° элСмСнт β€” всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Ρ‘Π»ΠΊΠ°Π΅Ρ‚ ΠΏΠΎ Π½Π΅ΠΌΡƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Бобытия Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²Π΅Π±-страниц

Бобытия, ΠΊΠ°ΠΊ понятиС, относятся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ JavaScript β€” Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ языков программирования ΠΈΠΌΠ΅ΡŽΡ‚ модСль событий, способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ часто отличаСтся ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² JavaScript. ЀактичСски, Π΄Π°ΠΆΠ΅ модСль событий Π² JavaScript для Π²Π΅Π±-страниц отличаСтся ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ событий для просто JavaScript, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах.

НапримСр, Node.js β€” ΠΎΡ‡Π΅Π½ΡŒ популярная срСда исполнСния JavaScript, которая позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JavaScript для создания сСтСвых ΠΈ сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. МодСль событий Node.js основана Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ события, ΠΈ эмиттСры (ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСриодичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ события. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ, это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° модСль событий Π² JavaScript для Π²Π΅Π±-страниц, Π½ΠΎ ΠΊΠΎΠ΄ совсСм Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π’ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция on() для рСгистрации ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий, ΠΈ функция once() для рСгистрации ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ срабатывания. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ использования ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ событий HTTP connect event docs.

На Π΄Π°Π½Π½ΠΎΠΌ этапС обучСния Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ особо Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдах программирования, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ событий Π² Π½ΠΈΡ… отличаСтся.

Бпособы использования Π²Π΅Π±-событий

БущСствуСт мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов добавлСния ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий Π½Π° Π²Π΅Π±-страницы Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ срабатывал ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ события. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΈ обсудим, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Бвойства ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий

Π’ этом курсС Π²Ρ‹ ΡƒΠΆΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ со свойствами, связываСмыми с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий. ВСрнёмся ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌΡƒ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

Π’ Π΄Π°Π½Π½ΠΎΠΉ ситуации свойство onclick β€” это свойство ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ свойство ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊΠ°ΠΊ элСмСнта (Π½Π°Ρ€Π°Π²Π½Π΅ с btn.textContent ΠΈΠ»ΠΈ btn.style ), Π½ΠΎ ΠΎΠ½ΠΎ относится ΠΊ особому Ρ‚ΠΈΠΏΡƒ. Если Π²Ρ‹ установитС Π΅Π³ΠΎ Ρ€Π°Π²Π½Ρ‹ΠΌ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠΎΠ΄Ρƒ, этот ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ события (ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ).

Для получСния Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ свойству ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° имя ΡƒΠΆΠ΅ описанной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ):

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ поэкспСримСнтируСм с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ свойствами ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию Ρ„Π°ΠΉΠ»Π° random-color-eventhandlerproperty.html ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΅Ρ‘ Π² своём Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π­Ρ‚ΠΎ всСго лишь копия простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎ случайныС Ρ†Π²Π΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡƒΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ btn.onclick Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния ΠΈ ΠΏΠΎΠ½Π°Π±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ Π·Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ:

НСкоторыС события ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΈ доступны практичСски Π² любом мСстС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ onclick ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ зарСгистрирован практичСски для любого элСмСнта), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ситуациях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ onplay Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… элСмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ).

Π‘Π°ΠΌΡ‹ΠΉ Ρ€Π°Π½Π½ΠΈΠΉ ΠΈΠ· Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π² ΡΠ΅Ρ‚ΡŒ Web ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² рСгистрации ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий базируСтся Π½Π° HTML Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… (встроСнныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий):

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ исходник ΠΊΠΎΠ΄Π° ΠΈΠ· этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° GitHub (Ρ‚Π°ΠΊΠΆΠ΅ взглянитС Π½Π° Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅).

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° β€” это Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ΄ JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ события. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ вызываСтся функция, опрСдСлённая Π²Π½ΡƒΡ‚Ρ€ΠΈ элСмСнта

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ JavaScript: ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π’Ρ‹ властны Π½Π°Π΄ своим Ρ€Π°Π·ΡƒΠΌΠΎΠΌ, Π½ΠΎ Π½Π΅ Π½Π°Π΄ внСшними событиями. Когда Π²Ρ‹ ΠΏΠΎΠΉΠΌΡ‘Ρ‚Π΅ это, Π²Ρ‹ ΠΎΠ±Ρ€Π΅Ρ‚Ρ‘Ρ‚Π΅ силу.
ΠœΠ°Ρ€ΠΊ АврСлий, Β«ΠœΠ΅Π΄ΠΈΡ‚Π°Ρ†ΠΈΠΈΒ».

НСкоторыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΌΡ‹ΡˆΡŒΡŽ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ. ВрСмя возникновСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… нСльзя ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŽ Π½Π°Π΄ порядком выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡Π΅ΠΌ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ Π½Π°ΠΌ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ интСрфСйс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ СдинствСнным способом ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π½Π°ΠΆΠ°Π»ΠΈ Π»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π±Ρ‹Π»ΠΎ Π±Ρ‹ считываниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° наТатия, Π²Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ постоянно ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ состояния ΠΊΠ½ΠΎΠΏΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ это состояниС, ΠΏΠΎΠΊΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ ΠΎΡ‚ΠΆΠ°Π»Π°ΡΡŒ. Π‘Ρ‹Π»ΠΎ Π±Ρ‹ опасно ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ подсчёты, ΠΎΡ‚Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ процСссорноС врСмя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ наТатия.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Π²ΠΎΠ΄ обрабатывался Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… устройствах. Π¨Π°Π³ΠΎΠΌ Π²ΠΏΠ΅Ρ€Ρ‘Π΄ Π±Ρ‹Π»ΠΎ Π±Ρ‹, Ссли ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΠ° Π·Π°ΠΌΠ΅Ρ‡Π°Π»ΠΈ Π±Ρ‹ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈ Π±Ρ‹ Π΅Π³ΠΎ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пСриодичСски ΠΌΠΎΠ³Π»Π° Π±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π° Π½ΠΎΠ²Ρ‹Π΅ события ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ находится Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

РазумССтся, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅, ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ это достаточно часто, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° это, Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π²ΠΎΡΠΏΡ€ΠΈΡΡ‚ΠΈΡŽ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ называСтся опросом. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ программистов ΠΏΠΎ возмоТности ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ Π΅Π³ΠΎ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ достаточно Ρ€Π΅Π΄ΠΊΠΎ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅ – нСкая промСТуточная систСма, которая позволяСт ΠΊΠΎΠ΄Ρƒ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° события Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΡ… возникновСния. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ это Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡƒΡ‚Ρ‘ΠΌ рСгистрации Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… событий.

Ѐункция addEventListener рСгистрируСт свой Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая вызываСтся, ΠΊΠΎΠ³Π΄Π° описанноС Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ событиС случаСтся.

Бобытия ΠΈ ΡƒΠ·Π»Ρ‹ DOM

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° зарСгистрирован Π² контСкстС. Когда Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ addEventListener, Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΅Ρ‘ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ†Π΅Π»ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости – это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ window. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта DOM Π΅ΡΡ‚ΡŒ свой ΠΌΠ΅Ρ‚ΠΎΠ΄ addEventListener, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ события ΠΎΡ‚ этого элСмСнта.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° DOM-ΡƒΠ·Π΅Π» ΠΊΠ½ΠΎΠΏΠΊΠΈ. НаТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π° наТатия Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° – Π½Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚.

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡƒΠ·Π»Ρƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° onclick Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠ΅. Но Ρƒ ΡƒΠ·Π»Π° Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ onclick, Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‚Π°ΠΊΠΈΠΌ способом Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. ΠœΠ΅Ρ‚ΠΎΠ΄ addEventListener позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ любоС количСство ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ случайно ΡƒΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

ΠœΠ΅Ρ‚ΠΎΠ΄ removeEventListener, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹ΠΉ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠ°ΠΊ addEventListener, удаляСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

Π§Ρ‚ΠΎΠ±Ρ‹ это ΠΏΡ€ΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ, ΠΌΡ‹ Π΄Π°Ρ‘ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ имя (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, once), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈ Π² addEventListener, ΠΈ Π² removeEventListener.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ событий

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ функциям-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ пСрСдаётся Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ события. Π’ Π½Ρ‘ΠΌ хранится Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ событии. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли Π½Π°Π΄ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, какая ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ свойству which этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π₯ранящаяся Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ информация – разная для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° событий. ΠœΡ‹ обсудим эти Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ·ΠΆΠ΅. Бвойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° type всСгда содСрТит строку, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ событиС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«clickΒ» ΠΈΠ»ΠΈ Β«mousedownΒ»).

РаспространСниС (propagation)

Бобытия, зарСгистрированныС Π½Π° ΡƒΠ·Π»Π°Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΡƒΠ·Π»Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ события, ΡΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ΡΡ с ΠΈΡ… Π΄Π΅Ρ‚ΡŒΠΌΠΈ. Если ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ событиС click.

Если ΠΈ Ρƒ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π° ΠΈ Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ запустится Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ – Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠ°ΠΊ Π±Ρ‹ распространяСтся Π½Π°Ρ€ΡƒΠΆΡƒ, ΠΎΡ‚ ΡƒΠ·Π»Π°, Π³Π΄Π΅ ΠΎΠ½ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Π΄ΠΎ Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΈ Π΄Π°Π»Π΅Π΅ Π΄ΠΎ корня Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ПослС ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСх ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² всСх ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ², ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡΡ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° событиС Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΈ Π΄ΠΎ самого ΠΎΠΊΠ½Π°.

Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ stopPropagation ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π²Ρ‹ΡΡˆΠΈΠ΅Β» ΡƒΠ·Π»Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π΅Π³ΠΎ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ кликабСльного элСмСнта, ΠΈ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΈΠΊΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ внСшнСго элСмСнта.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ рСгистрируСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Β«mousedownΒ» ΠΊΠ°ΠΊ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅. ΠŸΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ stopPropagation, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ запуск ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°. ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΠ±Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π£ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² событий Π΅ΡΡ‚ΡŒ свойство target, ΡΡΡ‹Π»Π°ΡŽΡ‰Π΅Π΅ΡΡ Π½Π° ΡƒΠ·Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запустил ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠ΅Π΅ с Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π²Π°ΠΌ ΡƒΠ·Π»Π°.

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство target, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° события. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΡƒΠ·Π΅Π», содСрТащий Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ список ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий для ΡƒΠ·Π»Π°, ΠΈ Π² Π½Ρ‘ΠΌ Π²Ρ‹ΡΡΠ½ΡΡ‚ΡŒ, Π½Π°ΠΆΠ°Π»ΠΈ Π»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ – вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ДСйствия ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ… событий Π΅ΡΡ‚ΡŒ дСйствия ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ссылку Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘Ρ‚Π΅ ΠΏΠΎ Π½Π΅ΠΉ. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° стрСлку Π²Π½ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ страницу Π²Π½ΠΈΠ·. По ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠΊΡƒ ΠΌΡ‹ΡˆΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ контСкстноС мСню. И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ‚ΠΈΠΏΠΎΠ² событий ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ сработаСт дСйствиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это дСйствиС происходило (часто ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π» Π΅Π³ΠΎ), ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ preventDefault ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания своих горячих клавиш ΠΈΠ»ΠΈ контСкстного мСню. Π’Π°ΠΊΠΆΠ΅ это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для слома ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ интСрфСйса. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π²ΠΎΡ‚ ссылка, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ нСльзя ΠΏΡ€ΠΎΠΉΡ‚ΠΈ.

НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊ – Ссли Ρƒ вас Π½Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹! ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ вашСй страницы Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ столкнутся с Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ своих дСйствий. Π’ зависимости ΠΎΡ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ события ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ нСльзя. Π’ Chrome нСльзя ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ горячиС клавиши закрытия Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ (Ctrl-W or Command-W).

Бобытия ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ запускаСт событиС Β«keydownΒ». Когда ΠΎΠ½Π° отпускаСтся, происходит событиС Β«keyupΒ».

НСсмотря Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Β«keydownΒ» происходит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π°ΠΆΠΈΠΌΠ°ΡŽΡ‚. Если Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ, событиС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Ρƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ сигнала ΠΎΡ‚ клавиши (key repeat). Если Π²Π°ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π°Π΄ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ускорСниС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ пСрсонаТа, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΆΠ°Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠ° со стрСлкой, ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π° – Π½Π°Π΄ΠΎ Π±Ρ‹Ρ‚ΡŒ остороТным, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ускорСниС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅ сигнала ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΈΠ½Π°Ρ‡Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ возрастёт ΠΎΡ‡Π΅Π½ΡŒ сильно.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ упомянуто свойство keyCode ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события. Π’Π°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, какая ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π° ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π°. К соТалСнию, Π½Π΅ всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ числовыС ΠΊΠΎΠ΄Ρ‹ Π² Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

Для Ρ†ΠΈΡ„Ρ€ ΠΈ Π±ΡƒΠΊΠ² ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ΄ΠΎΠΌ символа Unicode, связанного с прописным символом, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. ΠœΠ΅Ρ‚ΠΎΠ΄ строки charCodeAt Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ этот ΠΊΠΎΠ΄.

Π£ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΊΠΎΠ΄Ρ‹ ΠΌΠ΅Π½Π΅Π΅ прСдсказуСмы. Π›ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΈΡ… Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ – ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСт ΠΊΠΎΠ΄Ρ‹ клавиш, ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

Кнопки-ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ‚ΠΈΠΏΠ° Shift, Ctrl, Alt, ΠΈ Meta (Command Π½Π° Mac) ΡΠΎΠ·Π΄Π°ΡŽΡ‚ события, ΠΊΠ°ΠΊ ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Но ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ клавиш ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Π±Ρ‹Π»ΠΈ Π»ΠΈ Π½Π°ΠΆΠ°Ρ‚Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Ρ‡Π΅Ρ€Π΅Π· свойства shiftKey, ctrlKey, altKey, ΠΈ metaKey событий ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΌΡ‹ΡˆΠΈ.

Бобытия Β«keydownΒ» ΠΈ Β«keyupΒ» Π΄Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ физичСском Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ. А Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ тСкст Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ? Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΠΊΠ½ΠΎΠΏΠΎΠΊ – Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Для этого сущСствуСт событиС Β«keypressΒ», происходящСС сразу послС Β«keydownΒ» (ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ вмСстС с Β«keydownΒ», Ссли ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ), Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ символы. Бвойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° события charCode содСрТит ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Unicode. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ String.fromCharCode для прСвращСния ΠΊΠΎΠ΄Π° Π² строку ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ события наТатия клавиши ΡƒΠ·Π΅Π» становится Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ находился фокус Π²Π²ΠΎΠ΄Π° Π²ΠΎ врСмя наТатия. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π° (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ Π·Π°Π΄Π°Π»ΠΈ ΠΈΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ tabindex), Π° Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ссылки, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ поля Ρ„ΠΎΡ€ΠΌ – ΠΌΠΎΠ³ΡƒΡ‚. ΠœΡ‹ вСрнёся ΠΊ полям Π²Π²ΠΎΠ΄Π° Π² Π³Π»Π°Π²Π΅ 18. Когда Π½ΠΈ Ρƒ Ρ‡Π΅Π³ΠΎ Π½Π΅Ρ‚ фокуса, Π² качСствС Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° событий Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Β«document.bodyΒ».

Π©Π΅Π»Ρ‡ΠΊΠΈ ΠΌΡ‹ΡˆΡŒΡŽ

НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ Ρ‚ΠΎΠΆΠ΅ запускаСт нСсколько событий. Бобытия Β«mousedownΒ» ΠΈ Β«mouseupΒ» ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Β«keydownΒ» ΠΈ Β«keyupΒ», ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π° ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π°. Бобытия происходят Ρƒ Ρ‚Π΅Ρ… ΡƒΠ·Π»ΠΎΠ² DOM, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ находился курсор ΠΌΡ‹ΡˆΠΈ.

ПослС события Β«mouseupΒ» Π½Π° ΡƒΠ·Π»Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΡˆΠ»ΠΈΡΡŒ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅, ΠΈ отпусканиС ΠΊΠ½ΠΎΠΏΠΊΠΈ, запускаСтся событиС β€œclick”. НапримСр, Ссли я Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ΠΎΠΌ, ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΠ» ΠΌΡ‹ΡˆΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ ΠΈ отпустил ΠΊΠ½ΠΎΠΏΠΊΡƒ, событиС β€œclick” случится Ρƒ элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТал Π² сСбС ΠΎΠ±Π° эти ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°.

Если Π΄Π²Π° Ρ‰Π΅Π»Ρ‡ΠΊΠ° происходят достаточно быстро Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ, запускаСтся событиС Β«dblclickΒ» (double-click), сразу послС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ запуска β€œclick”.

Для получСния Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ мСста, Π³Π΄Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ событиС ΠΌΡ‹ΡˆΠΈ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ свойствам pageX ΠΈ pageY – ΠΎΠ½ΠΈ содСрТат ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π² пиксСлях ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создана примитивная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для рисования. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠ½ добавляСт Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΏΠΎΠ΄ вашим курсором. Π’ Π³Π»Π°Π²Π΅ 19 Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСна ΠΌΠ΅Π½Π΅Π΅ примитивная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для рисования.

Бвойства clientX ΠΈ clientY ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° pageX ΠΈ pageY, Π½ΠΎ Π΄Π°ΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, которая Π²ΠΈΠ΄Π½Π° сСйчас (Ссли Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π» ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡Π΅Π½). Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ сравнСнии ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΌΡ‹ΡˆΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ getBoundingClientRect – Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Ρ‚ΠΎΠΆΠ΅ связан с ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ части Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ сдвигС курсора ΠΌΡ‹ΡˆΠΈ запускаСтся событиС Β«mousemoveΒ». Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для отслСТивания ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈ создании Π½Π΅ΠΊΠΎΠ΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, связанной с пСрСтаскиваниСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΡ‹ΡˆΡŒΡŽ.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ полоску ΠΈ устанавливаСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ событий Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΅Ρ‘ ΡˆΠΈΡ€ΠΈΠ½Ρƒ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ – ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Β«mousemoveΒ» зарСгистрирован Ρƒ всСго ΠΎΠΊΠ½Π°. Π”Π°ΠΆΠ΅ Ссли ΠΌΡ‹ΡˆΡŒ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ полоски, Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π΅Ρ‘ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ это, ΠΊΠΎΠ³Π΄Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΎΡ‚ΠΏΡƒΡΠΊΠ°ΡŽΡ‚.

Когда курсор ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° ΡƒΠ·Π΅Π» ΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ с Π½Π΅Π³ΠΎ, происходят события Β«mouseoverΒ» ΠΈΠ»ΠΈ Β«mouseoutΒ». Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, для создания эффСктов провСдСния ΠΌΡ‹ΡˆΠΈ, показывая ΠΈΠ»ΠΈ мСняя ΡΡ‚ΠΈΠ»ΡŒ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, ΠΊΠΎΠ³Π΄Π° курсор находится Π½Π°Π΄ этим элСмСнтом.

К соТалСнию, созданиС Ρ‚Π°ΠΊΠΎΠ³ΠΎ эффСкта Π½Π΅ ограничиваСтся запуском Π΅Π³ΠΎ ΠΏΡ€ΠΈ событии Β«mouseoverΒ» ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ событии Β«mouseoutΒ». ΠŸΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ ΠΎΡ‚ ΡƒΠ·Π»Π° ΠΊ Π΅Π³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΡƒΠ·Π»Π°ΠΌ Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΡƒΠ·Π»Π΅ происходит событиС Β«mouseoutΒ», хотя ΠΌΡ‹ΡˆΡŒ, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π΅Π³ΠΎ ΠΈ Π½Π΅ ΠΏΠΎΠΊΠΈΠ΄Π°Π»Π°. Π§Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Ρ…ΡƒΠΆΠ΅, эти события Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΈ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅, поэтому Π²Ρ‹ всё Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Β«mouseoutΒ» ΠΏΡ€ΠΈ ΡƒΡ…ΠΎΠ΄Π΅ курсора с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΡƒΠ·Π»ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, Π³Π΄Π΅ Π²Ρ‹ зарСгистрировали ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

Для ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство relatedTarget ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° событий. Он сообщаСт, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡƒΠ·Π»Π΅ Π±Ρ‹Π»Π° Π΄ΠΎ этого ΠΌΡ‹ΡˆΡŒ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ события Β«mouseoverΒ», ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ элСмСнт ΠΎΠ½Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈ событии Β«mouseoutΒ». Нам Π½Π°Π΄ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ эффСкт, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° relatedTarget находится Π²Π½Π΅ нашСго Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. Волько Π² этом случаС событиС Π½Π° самом Π΄Π΅Π»Π΅ прСдставляСт собой ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° наш ΡƒΠ·Π΅Π» (ΠΈΠ»ΠΈ ΡƒΡ…ΠΎΠ΄ с ΡƒΠ·Π»Π°).

Ѐункция isInside ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ всСх ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² ΡƒΠ·Π»Π°, ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ Π²Π΅Ρ€Ρ…Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΡƒΠ·Π΅Π» Ρ€Π°Π²Π΅Π½ null), ΠΈΠ»ΠΈ ΠΆΠ΅ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ родитСля.

Π”ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ эффСкт достиТим Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Ρ‡Π΅Ρ€Π΅Π· псСвдосСлСктор CSS ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ :hover, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. Но ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТноС, Ρ‡Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ стиля ΡƒΠ·Π»Π°, придётся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€ΡŽΠΊ с событиями Β«mouseoverΒ» ΠΈ Β«mouseoutΒ».

Бобытия ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ

Когда элСмСнт прокручиваСтся, запускаСтся событиС Β«scrollΒ». Π­Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π½Π° Ρ‡Ρ‚ΠΎ сСйчас ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смотрит (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ ΠΏΠΎΠΏΠ°Π²ΡˆΡƒΡŽ Π½Π° экран, ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сСкрСтныС шпионскиС донСсСния Π² ваш злодСйский ΡˆΡ‚Π°Π±), ΠΈΠ»ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прогрСсс (подсвСчивая Ρ‡Π°ΡΡ‚ΡŒ содСрТания ΠΈΠ»ΠΈ показывая Π½ΠΎΠΌΠ΅Ρ€ страницы).

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° создаётся ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ процСсса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заполняСтся ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ элСмСнта Π²Π½ΠΈΠ·.

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ элСмСнта fixed ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ absolute, Π½ΠΎ Π΅Ρ‰Ρ‘ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΠ΅ элСмСнта вмСстС с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. Бмысл Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ наш ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² ΡƒΠ³Π»Ρƒ. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ находится Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ измСняСт Ρ€Π°Π·ΠΌΠ΅Ρ€, отраТая Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ прогрСсс. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρ‹ вмСсто px для задания ΡˆΠΈΡ€ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта измСнялся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° всСго ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная innerHeight Π΄Π°Ρ‘Ρ‚ высоту ΠΎΠΊΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π΄ΠΎ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠΉ высоты ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ элСмСнта – ΠΏΡ€ΠΈ достиТСнии ΠΊΠΎΠ½Ρ†Π° элСмСнта ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° заканчиваСтся. (Π’Π°ΠΊΠΆΠ΅ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ innerHeight Π΅ΡΡ‚ΡŒ пСрСмСнная innerWidth). ПодСлив Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ pageYOffset Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ, ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠΈΠ² Π½Π° 100, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

Π’Ρ‹Π·ΠΎΠ² preventDefault Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события вызываСтся ΡƒΠΆΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° ΡΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ.

Бобытия, связанныС с фокусом

ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ элСмСнтом фокуса Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ запускаСт событиС β€œfocus”. Когда ΠΎΠ½ тСряСт фокус, запускаСтся событиС β€œblur”.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… событий, эти Π΄Π²Π° Π½Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π½Π΅ увСдомляСтся ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡƒΡ‚Ρ€Π°Ρ‚Π΅ фокуса Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ элСмСнтом.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт тСкст подсказки для Ρ‚ΠΎΠ³ΠΎ тСкстового поля, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ фокус.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ window ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ события focus ΠΈ blur, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ выдСляСт ΠΈΠ»ΠΈ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ фокус с Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΎΠΊΠ½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

Иногда Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, сохранив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ setTimeout, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Π²Π°Π² с Π½ΠΈΠΌ clearTimeout.

Ѐункция cancelAnimationFrame Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ clearTimeout – Π²Ρ‹Π·ΠΎΠ² Π΅Ρ‘ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Ρ‘Π½Π½Ρ‹ΠΌ requestAnimationFrame, ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ этот ΠΊΠ°Π΄Ρ€ (Ссли ΠΎΠ½ ΡƒΠΆΠ΅ Π½Π΅ Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½).

ΠŸΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, setInterval ΠΈ clearInterval ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ X миллисСкунд.

УстранСниС ΠΏΠΎΠΌΠ΅Ρ… (debouncing)

Π£ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… событий Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ быстро ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· подряд (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«mousemoveΒ» ΠΈ Β«scrollΒ»). ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°ΠΊΠΈΡ… событий Π½Π°Π΄ΠΎ Π±Ρ‹Ρ‚ΡŒ остороТным ΠΈ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ «тяТёлого», ΠΈΠ»ΠΈ ваш ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π·Π°ΠΉΠΌΡ‘Ρ‚ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ взаимодСйствиС с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈ прСрывистым.

Если Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ setTimeout, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ это Π½Π΅ слишком часто. Π­Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «устранСниСм ΠΏΠΎΠΌΠ΅Ρ…Β» Π² событии. К этому сущСствуСт нСсколько слСгка Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ².

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚, Π½ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ это сразу послС запуска ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ события наТатия Π½Π° клавиши. Когда ΠΎΠ½ΠΈ быстро ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚, Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΏΠ°ΡƒΠ·Π°. ВмСсто Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ выполнСния дСйствия Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅, ΠΌΡ‹ устанавливаСм Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚, Ссли ΠΎΠ½ Π±Ρ‹Π», Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ссли события Π±Π»ΠΈΠ·ΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ (Π±Π»ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°), ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ событиС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎ.

Если Π·Π°Π΄Π°Ρ‚ΡŒ undefined для clearTimeout, ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΡ‘Π», Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ Π½Π°Π΄ΠΎ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΈΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅, ΠΈ ΠΌΡ‹ просто поступаСм Ρ‚Π°ΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ события.

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Ссли Π½Π°ΠΌ Π½Π°Π΄ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… Π² Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° происходят события, Π° Π½Π΅ послС. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π°Π΄ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° события Β«mousemoveΒ», показывая Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΌΡ‹ΡˆΠΈ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 250 миллисСкунд.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° события, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Π½Π΅ властны. Для ΠΈΡ… рСгистрации ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ addEventListener.

Π£ событий Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΈΡ… Ρ‚ΠΈΠΏ (Β«keydownΒ», Β«focusΒ», ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅). Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ событий Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ DOM, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΊΠΎΠ², позволяя связанными с Π½ΠΈΠΌΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ….

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΅ΠΌΡƒ пСрСдаётся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ события с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ событии. Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ дальнСйшСС распространСниС (stopPropagation) ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ события Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (preventDefault).

НаТатия Π½Π° клавиши Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ события Β«keydownΒ», Β«keypressΒ» ΠΈ Β«keyupΒ». НаТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ события Β«mousedownΒ», Β«mouseupΒ» ΠΈ Β«clickΒ». ДвиТСния ΠΌΡ‹ΡˆΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ события Β«mousemoveΒ», ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Β«mouseenterΒ» ΠΈ Β«mouseoutΒ».

ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· событиС β€œscroll”, Π° измСнСния фокуса Ρ‡Π΅Ρ€Π΅Π· события Β«focusΒ» ΠΈ Β«blurΒ». Когда заканчиваСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° window запускаСтся событиС β€œload”.

Π’ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ участок ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ скрипты Π±ΡƒΠ΄ΡƒΡ‚ ΠΆΠ΄Π°Ρ‚ΡŒ окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ….

УпраТнСния

Π¦Π΅Π½Π·ΡƒΡ€Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

Π’ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ с 1928 ΠΏΠΎ 2013 Π³ΠΎΠ΄ Ρ‚ΡƒΡ€Π΅Ρ†ΠΊΠΈΠ΅ Π·Π°ΠΊΠΎΠ½Ρ‹ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π»ΠΈ использованиС Π±ΡƒΠΊΠ² Q, W ΠΈ X Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…. Π­Ρ‚ΠΎ являлось Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ подавлСния курдской ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹ – эти Π±ΡƒΠΊΠ²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² языкС ΠΊΡƒΡ€Π΄ΠΎΠ², Π½ΠΎ Π½Π΅ Ρƒ Ρ‚ΡƒΡ€ΠΊΠΎΠ².

Π’ качСствС упраТнСния Π½Π° Ρ‚Π΅ΠΌΡƒ странного использования Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, я ΠΏΡ€ΠΎΡˆΡƒ вас Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ для Π²Π²ΠΎΠ΄Π° тСкста Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эти Π±ΡƒΠΊΠ²Ρ‹ нСльзя Π±Ρ‹Π»ΠΎ Ρ‚ΡƒΠ΄Π° Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ. НасчСт копирования ΠΈ вставки ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΡ€Π°Π²ΠΈΠ»Π° Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ.

Π‘Π»Π΅Π΄ ΠΌΡ‹ΡˆΠΈ

Π’ Ρ€Π°Π½Π½ΠΈΠ΅ Π΄Π½ΠΈ JavaScript, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π»ΠΎ врСмя ΠΊΡ€ΠΈΡ‡Π°Ρ‰ΠΈΡ… Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… страниц с ΠΎΠ±ΠΈΠ»ΠΈΠ΅ΠΌ Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, люди использовали язык ΠΎΡ‡Π΅Π½ΡŒ Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ способами. Одним ΠΈΠ· Π½ΠΈΡ… Π±Ρ‹Π» «слСд ΠΌΡ‹ΡˆΠΈΒ» β€” сСрия ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдовали Π·Π° курсором ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎ страницС.

Π― Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ Π² ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ сдСлали Ρ‚Π°ΠΊΠΎΠΉ слСд. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅

с Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, фиксированным Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Ρ„ΠΎΠ½Π°. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΡƒΡ‡ΠΊΡƒ элСмСнтов ΠΈ ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… слСдом Π·Π° курсором.

К этому ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ способами. МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ простоС ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ слоТноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ – Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ фиксированноС количСство элСмСнтов ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ Π½ΠΈΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅, двигая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ мСсто курсора, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΊΠΎΠ³Π΄Π° случаСтся событиС Β«mousemoveΒ».

Π—Π°ΠΊΠ»Π°Π΄ΠΊΠΈ

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ встрСчаСтся часто. Он позволяСт Π²Π°ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ панСль интСрфСйса, выбирая ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚ΠΎΡ€Ρ‡Π°Ρ‰ΠΈΡ… Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ Π½Π°Π΄ элСмСнтом.

Π’ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ простой интСрфСйс Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ asTabs, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡƒΠ·Π΅Π» DOM, ΠΈ создаёт Π·Π°ΠΊΠ»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ интСрфСйс, показывая Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты этого ΡƒΠ·Π»Π°. Π•ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ список элСмСнтов Π²Π²Π΅Ρ€Ρ…Ρƒ ΡƒΠ·Π»Π°, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ элСмСнт, содСрТащих тСкст, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° data-tabname. ВсС, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ спрятаны (ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ значСния none свойства стиля display), Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ ΡƒΠ·Π΅Π» ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Когда ΠΎΠ½ΠΎ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ€Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π±Ρ‹Π» свой ΡΡ‚ΠΈΠ»ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *