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

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

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ событиям | MDN

abort (en-US)UIEvent (en-US)DOM L3The loading of a resource has been aborted.
abortProgressEvent (en-US)Progress and XMLHttpRequestProgression has been terminated (not due to an error).
abortEventIndexedDBA transaction has been aborted.
afterprint (en-US)EventHTML5The associated document has started printing or the print preview has been closed.
animationcancelAnimationEventCSS AnimationsA CSS animation has aborted.
animationend (en-US)AnimationEventCSS AnimationsA CSS animation has completed.
animationiteration (en-US)AnimationEventCSS AnimationsA CSS animation is repeated.
animationstart (en-US)AnimationEventCSS AnimationsA CSS animation has started.
appinstalledEventWeb App ManifestA web application is successfully installed as a progressive web app.
audioprocess (en-US)AudioProcessingEvent (en-US)Web Audio API
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ‘audioprocess’ Π² этой спСцификации.
The input buffer of a ScriptProcessorNode (en-US) is ready to be processed.
audioendEventWeb Speech APIThe user agent has finished capturing audio for speech recognition.
audiostartEventWeb Speech APIThe user agent has started to capture audio for speech recognition.
beforeprint (en-US)EventHTML5The associated document is about to be printed or previewed for printing.
beforeunload (en-US)BeforeUnloadEventHTML5The window, the document and its resources are about to be unloaded.
beginEvent (en-US)TimeEvent (en-US)SVGA SMIL animation element begins.
blockedIndexedDBAn open connection to a database is blocking a versionchange transaction on the same database.
blur (en-US)
FocusEvent (en-US)
DOM L3An element has lost focus (does not bubble).
boundarySpeechSynthesisEvent (en-US)Web Speech APIThe spoken utterance reaches a word or sentence boundary
canplay (en-US)EventHTML5 mediaThe user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content.
canplaythrough (en-US)EventHTML5 mediaThe user agent can play the media up to its end without having to stop for further buffering of content.
change (en-US)EventDOM L2, HTML5The change event is fired for <input>
, <select>, and <textarea> (en-US) elements when a change to the element’s value is committed by the user.
chargingchangeEventBattery statusThe battery begins or stops charging.
chargingtimechangeEventBattery statusThe chargingTime attribute has been updated.
click (en-US)MouseEventDOM L3A pointing device button has been pressed and released on an element.
closeEventWebSocketA WebSocket connection has been closed.
completeIndexedDBA transaction successfully completed.
complete (en-US)OfflineAudioCompletionEvent
(en-US)
Web Audio API
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ‘OfflineAudioCompletionEvent’ Π² этой спСцификации.
The rendering of an OfflineAudioContext (en-US) is terminated.
compositionend (en-US)CompositionEvent (en-US)DOM L3The composition of a passage of text has been completed or canceled.
compositionstart (en-US)CompositionEvent (en-US)DOM L3The composition of a passage of text is prepared (similar to keydown for a keyboard input, but works with other inputs such as speech recognition).
compositionupdate (en-US)CompositionEvent (en-US)DOM L3A character is added to a passage of text being composed.
contextmenu (en-US)
MouseEvent
HTML5The right button of the mouse is clicked (before the context menu is displayed).
copy (en-US)ClipboardEventClipboardThe text selection has been added to the clipboard.
cut (en-US)ClipboardEventClipboardThe text selection has been removed from the document and added to the clipboard.
dblclick (en-US)MouseEventDOM L3A pointing device button is clicked twice on an element.
devicechangeEventMedia Capture and StreamsA media device such as a camera, microphone, or speaker is connected or removed from the system.
devicemotion (en-US)DeviceMotionEvent
(en-US)
Device Orientation EventsFresh data is available from a motion sensor.
deviceorientation (en-US)DeviceOrientationEvent (en-US)Device Orientation EventsFresh data is available from an orientation sensor.
dischargingtimechangeEventBattery statusThe dischargingTime attribute has been updated.
DOMActivateUIEvent (en-US)DOM L3A button, link or state changing element is activated (use click (en-US) instead).
DOMAttributeNameChangedMutationNameEventDOM L3 RemovedThe name of an attribute changed (use mutation observers instead).
DOMAttrModified
MutationEvent (en-US)
DOM L3The value of an attribute has been modified (use mutation observers instead).
DOMCharacterDataModifiedMutationEvent (en-US)DOM L3A text or another CharacterData has changed (use mutation observers instead).
DOMContentLoaded (en-US)EventHTML5The document has finished loading (but not its dependent resources).
DOMElementNameChangedMutationNameEventDOM L3 RemovedThe name of an element changed (use mutation observers instead).
DOMFocusInFocusEvent (en-US)DOM L3An element has received focus (use focus (en-US) or focusin (en-US) instead).
DOMFocusOut
FocusEvent (en-US)DOM L3An element has lost focus (use blur (en-US) or focusout (en-US) instead).
DOMNodeInsertedMutationEvent (en-US)DOM L3A node has been added as a child of another node (use mutation observers instead).
DOMNodeInsertedIntoDocumentMutationEvent (en-US)DOM L3A node has been inserted into the document (use mutation observers instead).
DOMNodeRemovedMutationEvent (en-US)DOM L3A node has been removed from its parent node (use mutation observers instead).
DOMNodeRemovedFromDocumentMutationEvent (en-US)DOM L3A node has been removed from the document (use mutation observers instead).
DOMSubtreeModifiedMutationEvent (en-US)DOM L3A change happened in the document (use mutation observers instead).
drag (en-US)DragEvent (en-US)HTML5An element or text selection is being dragged (every 350ms).
dragend (en-US)DragEvent (en-US)HTML5A drag operation is being ended (by releasing a mouse button or hitting the escape key).
dragenter (en-US)DragEvent (en-US)HTML5A dragged element or text selection enters a valid drop target.
dragleave (en-US)DragEvent (en-US)HTML5A dragged element or text selection leaves a valid drop target.
dragover (en-US)DragEvent (en-US)HTML5An element or text selection is being dragged over a valid drop target (every 350ms).
dragstart (en-US)DragEvent (en-US)HTML5The user starts dragging an element or text selection.
drop (en-US)DragEvent (en-US)HTML5An element is dropped on a valid drop target.
durationchange (en-US)EventHTML5 mediaThe duration attribute has been updated.
emptied (en-US)EventHTML5 mediaThe media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it.
endEventWeb Speech APIThe speech recognition service has disconnected.
endSpeechSynthesisEvent (en-US)Web Speech APIThe utterance has finished being spoken.
ended (en-US)EventHTML5 mediaPlayback has stopped because the end of the media was reached.
ended (en-US)EventWeb Audio APIPlayback has stopped because the end of the media was reached.
endEvent (en-US)TimeEvent (en-US)SVGA SMIL animation element ends.
error (en-US)UIEvent (en-US)DOM L3A resource failed to load.
error (en-US)ProgressEvent (en-US)Progress and XMLHttpRequestProgression has failed.
error (en-US)EventWebSocketA WebSocket connection has been closed with prejudice (some data couldn’t be sent for example).
error (en-US)EventServer Sent EventsAn event source connection has been failed.
error (en-US)EventIndexedDBA request caused an error and failed.
errorEventWeb Speech APIA speech recognition error occurs.
errorSpeechSynthesisErrorEvent (en-US)Web Speech APIAn error occurs that prevents the utterance from being successfully spoken.
focus (en-US)FocusEvent (en-US)DOM L3An element has received focus (does not bubble).
focusin (en-US)FocusEvent (en-US)DOM L3An element is about to receive focus (bubbles).
focusout (en-US)FocusEvent (en-US)DOM L3An element is about to lose focus (bubbles).
fullscreenchange (en-US)EventFull ScreenAn element was turned to fullscreen mode or back to normal mode.
fullscreenerror (en-US)EventFull ScreenIt was impossible to switch to fullscreen mode for technical reasons or because the permission was denied.
gamepadconnected (en-US)GamepadEventGamepadA gamepad has been connected.
gamepaddisconnected (en-US)GamepadEventGamepadA gamepad has been disconnected.
gotpointercapturePointerEvent (en-US)Pointer EventsElement receives pointer capture.
hashchange (en-US)HashChangeEvent (en-US)HTML5The fragment identifier of the URL has changed (the part of the URL after the #).
lostpointercapturePointerEvent (en-US)Pointer EventsElement lost pointer capture.
input (en-US)EventHTML5The value of an element changes or the content of an element with the attribute contenteditable is modified.
invalid (en-US)EventHTML5A submittable element has been checked and doesn’t satisfy its constraints.
keydown (en-US)KeyboardEventDOM L3A key is pressed down.
keypress (en-US)KeyboardEventDOM L3A key is pressed down and that key normally produces a character value (use input instead).
keyup (en-US)KeyboardEventDOM L3A key is released.
languagechange (en-US)EventHTML 5.1
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ‘NavigatorLanguage.languages’ Π² этой спСцификации.
The user’s preferred languages have changed.
levelchangeEventBattery statusThe level attribute has been updated.
load (en-US)UIEvent (en-US)DOM L3A resource and its dependent resources have finished loading.
loadProgressEvent (en-US)Progress and XMLHttpRequestProgression has been successful.
loadeddata (en-US)EventHTML5 mediaThe first frame of the media has finished loading.
loadedmetadata (en-US)EventHTML5 mediaThe metadata has been loaded.
loadend (en-US)ProgressEvent (en-US)Progress and XMLHttpRequestProgress has stopped (after «error», «abort» or «load» have been dispatched).
loadstart (en-US)ProgressEvent (en-US)Progress and XMLHttpRequestProgress has begun.
markSpeechSynthesisEvent (en-US)Web Speech APIThe spoken utterance reaches a named SSML «mark» tag.
messageMessageEvent (en-US)WebSocketA message is received through a WebSocket.
messageMessageEvent (en-US)Web WorkersA message is received from a Web Worker.
messageMessageEvent (en-US)Web MessagingA message is received from a child (i)frame or a parent window.
messageMessageEvent (en-US)Server Sent EventsA message is received through an event source.
messageerrorMessageEvent (en-US)MessagePort (en-US), Web Workers, Broadcast Channel, WindowA message error is raised when a message is received by an object.
messageServiceWorkerMessageEvent (en-US) or ExtendableMessageEvent (en-US), depending on context.Service WorkersA message is received from a service worker, or a message is received in a service worker from another context.
mousedown (en-US)MouseEventDOM L3A pointing device button (usually a mouse) is pressed on an element.
mouseenter (en-US)MouseEventDOM L3A pointing device is moved onto the element that has the listener attached.
mouseleave (en-US)MouseEventDOM L3A pointing device is moved off the element that has the listener attached.
mousemove (en-US)MouseEventDOM L3A pointing device is moved over an element.
mouseout (en-US)MouseEventDOM L3A pointing device is moved off the element that has the listener attached or off one of its children.
mouseover (en-US)MouseEventDOM L3A pointing device is moved onto the element that has the listener attached or onto one of its children.
mouseup (en-US)MouseEventDOM L3A pointing device button is released over an element.
nomatchSpeechRecognitionEvent (en-US)Web Speech APIThe speech recognition service returns a final result with no significant recognition.
notificationclickNotificationEvent (en-US)Notifications API
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ‘onnotificationclick’ Π² этой спСцификации.
A system notification spawned by ServiceWorkerRegistration.showNotification() has been clicked.
offline (en-US)EventHTML5 offlineThe browser has lost access to the network.
online (en-US)EventHTML5 offlineThe browser has gained access to the network (but particular websites might be unreachable).
openEventWebSocketA WebSocket connection has been established.
openEventServer Sent EventsAn event source connection has been established.
orientationchange (en-US)EventScreen OrientationThe orientation of the device (portrait/landscape) has changed
pagehide (en-US)PageTransitionEvent (en-US)HTML5A session history entry is being traversed from.
pageshow (en-US)PageTransitionEvent (en-US)HTML5A session history entry is being traversed to.
paste (en-US)ClipboardEventClipboardData has been transferred from the system clipboard to the document.
pause (en-US)EventHTML5 mediaPlayback has been paused.
pauseSpeechSynthesisEvent (en-US)Web Speech APIThe utterance is paused part way through.
pointercancelPointerEvent (en-US)Pointer EventsThe pointer is unlikely to produce any more events.
pointerdownPointerEvent (en-US)Pointer EventsThe pointer enters the active buttons state.
pointerenterPointerEvent (en-US)Pointer EventsPointing device is moved inside the hit-testing boundary.
pointerleavePointerEvent (en-US)Pointer EventsPointing device is moved out of the hit-testing boundary.
pointerlockchange (en-US)EventPointer LockThe pointer was locked or released.
pointerlockerror (en-US)EventPointer LockIt was impossible to lock the pointer for technical reasons or because the permission was denied.
pointermovePointerEvent (en-US)Pointer EventsThe pointer changed coordinates.
pointeroutPointerEvent (en-US)Pointer EventsThe pointing device moved out of hit-testing boundary or leaves detectable hover range.
pointeroverPointerEvent (en-US)Pointer EventsThe pointing device is moved into the hit-testing boundary.
pointerupPointerEvent (en-US)Pointer EventsThe pointer leaves the active buttons state.
play (en-US)EventHTML5 mediaPlayback has begun.
playing (en-US)EventHTML5 mediaPlayback is ready to start after having been paused or delayed due to lack of data.
popstate (en-US)PopStateEvent (en-US)HTML5A session history entry is being navigated to (in certain cases).
progress (en-US)ProgressEvent (en-US)Progress and XMLHttpRequestIn progress.
pushPushEvent (en-US)Push APIA Service Worker has received a push message.
pushsubscriptionchangePushEvent (en-US)Push APIA PushSubscription has expired.
ratechange (en-US)EventHTML5 mediaThe playback rate has changed.
readystatechange (en-US)EventHTML5 and XMLHttpRequestThe readyState attribute of a document has changed.
repeatEvent (en-US)TimeEvent (en-US)SVGA SMIL animation element is repeated.
reset (en-US)EventDOM L2, HTML5A form is reset.
resize (en-US)UIEvent (en-US)DOM L3The document view has been resized.
resourcetimingbufferfullPerformanceResource TimingThe browser’s resource timing buffer is full.
resultSpeechRecognitionEvent (en-US)Web Speech APIThe speech recognition service returns a result β€” a word or phrase has been positively recognized and this has been communicated back to the app.
resumeSpeechSynthesisEvent (en-US)Web Speech APIA paused utterance is resumed.
scroll (en-US)UIEvent (en-US)DOM L3The document view or an element has been scrolled.
seeked (en-US)EventHTML5 mediaA seek operation completed.
seeking (en-US)EventHTML5 mediaA seek operation began.
select (en-US)UIEvent (en-US)DOM L3Some text is being selected.
selectstartEventSelection APIA selection just started.
selectionchangeEventSelection APIThe selection in the document has been changed.
show (en-US)MouseEventHTML5A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute
slotchangeEventDOMThe node contents of a HTMLSlotElement (en-US) (<slot>) have changed.
soundendEventWeb Speech APIAny sound β€” recognisable speech or not β€” has stopped being detected.
soundstartEventWeb Speech APIAny sound β€” recognisable speech or not β€” has been detected.
speechendEventWeb Speech APISpeech recognised by the speech recognition service has stopped being detected.
speechstartEventWeb Speech APISound that is recognised by the speech recognition service as speech has been detected.
stalled (en-US)EventHTML5 mediaThe user agent is trying to fetch media data, but data is unexpectedly not forthcoming.
startEventWeb Speech APIThe speech recognition service has begun listening to incoming audio with intent to recognize grammars associated with the current SpeechRecognition.
startSpeechSynthesisEvent (en-US)Web Speech APIThe utterance has begun to be spoken.
storage (en-US)StorageEvent (en-US)Web StorageA storage area (localStorage or sessionStorage) has changed.
submit (en-US)EventDOM L2, HTML5A form is submitted.
successEventIndexedDBA request successfully completed.
suspend (en-US)EventHTML5 mediaMedia data loading has been suspended.
SVGAbort (en-US)SVGEvent (en-US)SVGPage loading has been stopped before the SVG was loaded.
SVGError (en-US)SVGEvent (en-US)SVGAn error has occurred before the SVG was loaded.
SVGLoad (en-US)SVGEvent (en-US)SVGAn SVG document has been loaded and parsed.
SVGResize (en-US)SVGEvent (en-US)SVGAn SVG document is being resized.
SVGScroll (en-US)SVGEvent (en-US)SVGAn SVG document is being scrolled.
SVGUnload (en-US)SVGEvent (en-US)SVGAn SVG document has been removed from a window or frame.
SVGZoomSVGZoomEventSVGAn SVG document is being zoomed.
timeoutProgressEvent (en-US)XMLHttpRequest
timeupdate (en-US)EventHTML5 mediaThe time indicated by the currentTime attribute has been updated.
touchcancel (en-US)TouchEventTouch EventsA touch point has been disrupted in an implementation-specific manners (too many touch points for example).
touchend (en-US)TouchEventTouch EventsA touch point is removed from the touch surface.
touchmove (en-US)TouchEventTouch EventsA touch point is moved along the touch surface.
touchstart (en-US)TouchEventTouch EventsA touch point is placed on the touch surface.
transitionend (en-US)TransitionEvent (en-US)CSS TransitionsA CSS transition has completed.
unload (en-US)UIEvent (en-US)DOM L3The document or a dependent resource is being unloaded.
upgradeneededIndexedDBAn attempt was made to open a database with a version number higher than its current version. A versionchange transaction has been created.
userproximityUserProximityEvent (en-US)Proximity SensorFresh data is available from a proximity sensor (indicates whether the nearby object is near the device or not).
voiceschangedEventWeb Speech APIThe list of SpeechSynthesisVoice (en-US) objects that would be returned by the SpeechSynthesis.getVoices() (en-US) method has changed (when the voiceschanged event fires.)
versionchangeIndexedDBA versionchange transaction completed.
visibilitychange (en-US)EventPage visibilityThe content of a tab has become visible or has been hidden.
volumechange (en-US)EventHTML5 mediaThe volume has changed.
waiting (en-US)EventHTML5 mediaPlayback has stopped because of a temporary lack of data.
wheel (en-US)WheelEvent (en-US)DOM L3A wheel button of a pointing device is rotated in any direction.

JS JavaScript HTML DOM Бобытия



HTML DOM позволяСт JavaScript Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° события HTML:


Π Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° события

JavaScript ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ события, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ элСмСнт HTML.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ элСмСнт, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ JavaScript Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ события HTML:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ событий HTML:

  • Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ ΠΌΡ‹ΡˆΡŒΡŽ
  • ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π²Π΅Π±-страницы
  • Когда ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ
  • Когда ΠΌΡ‹ΡˆΡŒ пСрСмСщаСтся Π½Π°Π΄ элСмСнтом
  • ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ поля Π²Π²ΠΎΠ΄Π°
  • ΠŸΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ HTML-Ρ„ΠΎΡ€ΠΌΡ‹
  • Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±Π³Π»Π°Π΄ΠΈΡ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ содСрТимоС элСмСнта <h2> измСняСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ ΠΏΠΎ Π½Π΅ΠΌΡƒ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€


<h2>Click on this text!</h2>

</body>
</html>

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция вызываСтся ΠΈΠ· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€


<h2>Click on this text!</h2>

<script>
function changeText(id) {
Β Β Β  id.innerHTML = «Ooops!»;
}
</script>

</body>
</html>



Атрибуты события HTML

Для назначСния событий элСмСнтам HTML ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ событий.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Assign an onclick event to a button element:

<button>Try it</button>

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция с ΠΈΠΌΠ΅Π½Π΅ΠΌ DisplayDate Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ.


НазначСниС событий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTML DOM

HTML DOM позволяСт Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ события элСмСнтам HTML с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠΠ°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ событиС OnClick элСмСнту Button:

<script>
document.getElementById(«myBtn»).onclick = displayDate;
</script>

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция с ΠΈΠΌΠ΅Π½Π΅ΠΌ DisplayDate присваиваСтся HTML-элСмСнту с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ = «myBtn».

Ѐункция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ.


Бобытия OnLoad ΠΈ Unload

Бобытия OnLoad ΠΈ Unload ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ‚ страницу.

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ OnLoad ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° посСтитСля ΠΈ вСрсии Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ вСрсии Π²Π΅Π±-страницы Π½Π° основС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Бобытия OnLoad ΠΈ Unload ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ cookie.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

<body onload=»checkCookies()»>


Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ onChange

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ onChange часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² сочСтании с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π°.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования OnChange. Ѐункция Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ рСгистра () Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ измСняСт содСрТимоС поля Π²Π²ΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

<input type=»text» onchange=»upperCase()»>


Бобытия Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора ΠΌΡ‹ΡˆΠΈ

Для запуска Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора ΠΌΡ‹ΡˆΠΈ Π½Π° элСмСнт HTML ΠΈΠ»ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ события Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора ΠΌΡ‹ΡˆΠΈ ΠΈ onmouse:

Mouse Over Me


Бобытия OnMouseDown, OnMouseUp ΠΈ OnClick

Бобытия OnMouseDown, OnMouseUp ΠΈ OnClick ΡΠ²Π»ΡΡŽΡ‚ΡΡ частями Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΌΡ‹ΡˆΡŒΡŽ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ, инициируСтся событиС OnMouseDown, Π·Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ освобоТдаСтся, инициируСтся событиС OnMouseUp, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΊΠΎΠ³Π΄Π° Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, инициируСтся событиС OnClick.

Click Me



Бсылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ события HTML DOM

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список всСх событий HTML DOM, посмотритС Π½Π° Π½Π°ΡˆΡƒ ΠΏΠΎΠ»Π½ΡƒΡŽ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ события HTML DOM.


Бобытия Π² Javascript

Π’ этом Π²ΠΈΠ΄Π΅ΠΎ ΠΌΡ‹ с Π²Π°ΠΌΠΈ рассмотрим события (ΠΏΠΎ английски Π΅Π²Π΅Π½Ρ‚Ρ‹) Π² javascript. И ΠΌΡ‹ с Π²Π°ΠΌΠΈ Π½Π° самом Π΄Π΅Π»Π΅ ΠΈΡ… ΡƒΠΆΠ΅ использовали, ΠΊΠΎΠ³Π΄Π° писали onсlick Π½Π° DOM Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ с Π²Π°ΠΌΠΈ добавляли Π΅Π²Π΅Π½Ρ‚ ΠΊΠ»ΠΈΠΊ Π½Π° DOM Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚.

Π—Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΅Π²Π΅Π½Ρ‚Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅? Когда ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΌΡ‹ΡˆΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ фокусС, Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΅Π²Π΅Π½Ρ‚Ρ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ вСшаСм Π΅Π²Π΅Π½Ρ‚ Π½Π° DOM Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΈ ΠΎΠ½ Ρ‚Π°ΠΌ висит. И ΠΆΠ΄Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅ ΠΌΡ‹ сдСлаСм Ρ‚Π°ΠΊΠΎΠΉ Π΅Π²Π΅Π½Ρ‚. НапримСр ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΊΠ»ΠΈΠΊΠ½Π΅ΠΌ ΠΏΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ. И Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ выполняСт эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Π’Π΅ΡˆΠ°Ρ‚ΡŒ Π΅Π²Π΅Π½Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ html, это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π½Π΅ Π³ΠΈΠ±ΠΊΠΎ. Намного Π»ΡƒΡ‡ΡˆΠ΅ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. Π­Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ addEventListener.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ±Π΅Ρ€Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ onclick с нашСй ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΠΉ класс change

<button>Change</button>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Π½Π°Ρ‡Π°Π»Π΅ выполнСния нашСго javascript Ρ„Π°ΠΉΠ»Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ²Π΅ΡΠΈΡ‚ΡŒ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ (ΠΏΠΎ английски listener) этого Π΅Π²Π΅Π½Ρ‚Π° Π½Π° Π½Π°ΡˆΡƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

Но сСйчас ΠΌΡ‹ столкнСмся с ΠΎΠ΄Π½ΠΈΠΌ нюансом. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π² нашСм Ρ„Π°ΠΉΠ»Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ Π·Π°ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΡ‚ΡŒ Π΅Π΅

console.log(document.querySelector('.change'))

Если ΠΌΡ‹ посмотрим Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‚ΠΎ Π½Π°ΠΌ Π²Ρ‹Π²Π΅Π»ΠΎΡΡŒ null. И Π²ΠΏΠΎΠ»Π½Π΅ справСдливо, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ исполняСт ΠΊΠΎΠ΄ свСрху Π²Π½ΠΈΠ·, ΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Ρƒ нас ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ javascript, DOM Ρƒ нас Π΅Ρ‰Π΅ Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½. ΠŸΠΎΡ„ΠΈΠΊΡΠΈΡ‚ΡŒ это ΠΎΡ‡Π΅Π½ΡŒ просто. Π”Π°Π²Π°ΠΉΡ‚Π΅ пСрСставим script javascript Π² ΠΊΠΎΠ½Π΅Ρ† body. Π­Ρ‚ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.

<body>
  <button>Change</button>
  <script src='code.js'></script>
</body>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли ΠΌΡ‹ посмотрим Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‚ΠΎ наш Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ вывСлся ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ повСсим listener ΠΊΠ»ΠΈΠΊΠ° Π½Π° Π½Π°ΡˆΡƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ запишСм наш DOM Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ addEventListener. Π­Ρ‚ΠΎ функция, которая ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΅Π²Π΅Π½Ρ‚Π°, Π² нашСм случаС ΠΊΠ»ΠΈΠΊ, Π° Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая выполнится, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΊΠ»ΠΈΠΊΠ½Π΅ΠΌ.

var changeButton = document.querySelector('.change')

changeButton.addEventListener('click', function () {
  console.log('we clicked!')
})

Если ΠΌΡ‹ посмотрим Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Ρƒ нас вывСлся наш console.log.

И Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π²Π΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². НапримС Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ listener.

var changeButton = document.querySelector('.change')

changeButton.addEventListener('click', function () {
  console.log('we clicked!')
})

changeButton.addEventListener('click', function () {
  console.log('we clicked2!')
})

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ напишСм нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 2 Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΈ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ 2 Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π½Π° страницу ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠΌ классы. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ скроСм написав inline display: none. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π»ΡƒΡ‡ΡˆΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ написал стили Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ css Ρ„Π°ΠΉΠ»Π΅, Π½ΠΎ для малСнького ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Ρ‚Π°ΠΊ.

<div>
  First element
</div>
<div>
  Second element
</div>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ эти Π΄Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π² нашСм javascript

var firstElement = document.querySelector('.firstElement')
var secondElement = document.querySelector('.secondElement')

И навСсим Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ 2 события: mouseover ΠΈ mouseout. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠΎΠ³Π΄Π° курсор ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ с Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°.

var firstElement = document.querySelector('.firstElement')
var secondElement = document.querySelector('.secondElement')

firstElement.addEventListener('mouseover', function () {
  console.log('mouse in')
})

firstElement.addEventListener('mouseout', function () {
  console.log('mouse out')
})

Если ΠΌΡ‹ посмотрим Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора выводится console.log.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ display: block, Π° ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π΄Π΅Π½ΠΈΠΈ курсора display: none

var firstElement = document.querySelector('.firstElement')
var secondElement = document.querySelector('.secondElement')

firstElement.addEventListener('mouseover', function () {
  secondElement.style.display = 'block'
})

firstElement.addEventListener('mouseout', function () {
  secondElement.style.display = 'none'
})

Если ΠΌΡ‹ посмотрим Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Ρƒ нас показываСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, Π° ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π΄Π΅Π½ΠΈΠΈ курсора скрываСтся.

Если Ρƒ вас Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ получаСтся, Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ вопросы ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΈΡ… прямо ΠΏΠΎΠ΄ этим Π²ΠΈΠ΄Π΅ΠΎ ΠΈ я ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° Π½ΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‡Ρƒ.

JavaScript Бобытия. Π£Ρ€ΠΎΠΊΠΈ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. W3Schools Π½Π° русском


HTML события — это «Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ», Ρ‡Ρ‚ΠΎ происходит с HTML элСмСнтами.

Когда JavaScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° HTML страницах, JavaScript ΠΌΠΎΠΆΠ΅Ρ‚ «Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ» Π½Π° эти события.


HTML Бобытия

HTML-событиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² HTML событий:

  • HTML-страница Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ
  • ПолС Π²Π²ΠΎΠ΄Π° HTML Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ
  • НаТата ΠΊΠ½ΠΎΠΏΠΊΠ° HTML

Часто, ΠΊΠΎΠ³Π΄Π° происходят события, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

JavaScript позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ событий.

HTML позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий с ΠΊΠΎΠ΄ΠΎΠΌ JavaScript ΠΊ HTML Ρ”Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ.

Π‘ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ:

<элСмСнт event=ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ JavaScript>

Π‘ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ:

<элСмСнт event=«ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ JavaScript«>

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ onclick (с ΠΊΠΎΠ΄ΠΎΠΌ) добавляСтся ΠΊ элСмСнту <button>:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ JavaScript ΠΊΠΎΠ΄ измСняСт содСрТимоС элСмСнта с.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄ измСняСт содСрТимоС своСго собствСнного элСмСнта (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ this.innerHTML):

JavaScript ΠΊΠΎΠ΄ часто состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк. Π§Π°Ρ‰Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ событий, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:


ΠžΠ±Ρ‰ΠΈΠ΅ HTML события

Π’ΠΎΡ‚ список Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… распространённых HTML событий:

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ОписаниС
onchange HTML-элСмСнт Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½
onclick ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠ»ΠΈΠΊΠ°Π΅Ρ‚ HTML элСмСнт
onmouseover ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Π²ΠΎΠ΄ΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° HTML элСмСнт
onmouseout ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚ ΠΌΡ‹ΡˆΡŒ ΠΎΡ‚ HTML элСмСнта
onkeydown ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹
onload Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ» Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ страницы

Бписок Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ: W3Schools Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ JavaScript HTML DOM Бобытия.


Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ JavaScript?

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ дСйствий Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°:

  • Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° загруТаСтся страница
  • Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° страница Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°
  • ДСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ
  • ΠšΠΎΠ½Ρ‚Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅
  • И Π΄Ρ€ΡƒΠ³ΠΎΠ΅ …

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ JavaScript ΠΌΠΎΠ³ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с событиями:

  • Атрибуты событий HTML ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ JavaScript Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ
  • Атрибуты событий HTML ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ JavaScript
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ свои собствСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий элСмСнтам HTML
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ событий
  • И Π΄Ρ€ΡƒΠ³ΠΎΠ΅ …

Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС ΠΎ событиях ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… событий Π² Π³Π»Π°Π²Π°Ρ… HTML DOM Π½Π° нашСм сайтС W3Schools Π½Π° русском.



события ΠΈ колбэки β€” ДокумСнтация docs.cs-cart.ru 4.3.x

switch
'ce.switch_[ELM_ID]', [flag]

ЗапускаСтся ΠΏΡ€ΠΈ скрытии/раскрытии элСмСнта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π° cm-combination

  • flag β€” Ρ„Π»Π°Π³ состояния элСмСнта (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚/скрыт)
  • [ELM_ID] β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ элСмСнта (html свойство id)
picker_js_action
'ce.picker_js_action_[ELM_ID]', [elm]

ЗапускаСтся ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ элСмСнта Π² ajax_select_object.tpl

formpre
'ce.formpre_[FORM_NAME]', [form, clicked_elm]

ЗапускаСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ элСмСнтов.

  • form β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ, которая отправляСтся
  • clicked_elm β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Π²Π°Π» ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹
  • [FORM_NAME] β€” имя Ρ„ΠΎΡ€ΠΌΡ‹
formpost
'ce.formpost_[FORM_NAME]', [form, clicked_elm]

ЗапускаСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹, послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ элСмСнтов.

  • form β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ, которая отправляСтся
  • clicked_elm β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Π²Π°Π» ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹
  • [FORM_NAME] β€” имя Ρ„ΠΎΡ€ΠΌΡ‹
formajaxpost
'ce.formajaxpost_[FORM_NAME]', [response_data, params, response_text]

ЗапускаСтся послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ аяксом.

  • response_data β€” Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π°
  • params β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса
  • response_text β€” plain-text Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π°
ajaxdone
'ce.ajaxdone', [elms, inline_scripts, params, data, response.text]

ЗапускаСтся послС выполнСния ajax-запроса, послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСх Π²Π½Π΅ΡˆΠ½ΠΈΡ… скриптов

  • elms β€” коллСкция элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ запросом
  • inline_scripts β€” массив inline-скриптов, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΡ… Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅
  • params β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса
  • data β€” Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π°
  • response.text β€” plain-text Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π°
full_page_load
'ce.full_page_load', [response_data]

ЗапускаСтся послС выполнСния ajax-запроса, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π»Π° ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€Π΅Π½Π° страница ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ ссылкС Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°)

  • response_data β€” Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π°

JavaScript: Π·Π°Ρ…Π²Π°Ρ‚ события восходящСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ событий

ΠŸΠΎΡ‚ΠΎΠΊ событий

Когда HTML-страница взаимодСйствуСт с JavaScript, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‡Π΅Ρ€Π΅Π· события, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: события Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΌΡ‹ΡˆΠΈ, события ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ страницы, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Ρ‚. Π”., И Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ… Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ эти события, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Β«ΠŸΠΎΡ‚ΠΎΠΊ событий».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΡ‚ΠΎΠΊ событий?

ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ события ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ со страницы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ порядок распространСния событий.
ВрСмя этапами ΠΏΠΎΡ‚ΠΎΠΊΠ° событий DOM ΡΠ²Π»ΡΡŽΡ‚ΡΡ: этап Π·Π°Ρ…Π²Π°Ρ‚Π° событий, Ρ†Π΅Π»Π΅Π²ΠΎΠΉ этап ΠΈ этап восходящСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ событий.

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

Β«Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ уровня DOM2Β» опрСдСляСт Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий: addEventListener () ΠΈ removeEventListener (), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ 3 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: имя ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ события, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² качСствС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий ΠΈ ЛогичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ истинно, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий вызываСтся Π½Π° этапС Π·Π°Ρ…Π²Π°Ρ‚Π°, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ называСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ событий Π½Π° этапС восходящСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ.

БвязываниС событий

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ΠŸΠΎΡ‚ΠΎΠΊ событий</title> 
</head>
<body>
    <a href="javascript:;">Кнопка</a>
		
		 <script>

    window.onload = function(){

        var oBtn = document.getElementById('btn');

        oBtn.addEventListener('click',function(){
            console.log('btn находится Π² Ρ„Π°Π·Π΅ Π·Π°Ρ…Π²Π°Ρ‚Π° события');
        }, true);
        oBtn.addEventListener('click',function(){
            console.log('btn находится Π² Ρ„Π°Π·Π΅ всплытия события');
        }, false);

        document.addEventListener('click',function(){
            console.log("Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ находится Π½Π° стадии Π·Π°Ρ…Π²Π°Ρ‚Π° события");
        }, true);
        document.addEventListener('click',function(){
            console.log("Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ находится Π² стадии всплытия событий");
        }, false);  
				
    };

    </script>
</body>
</html>

ΠœΠ°ΡΡˆΡ‚Π°Π± мСроприятия

html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			
				width: 200px;
				height: 200px;
				background: fuchsia;
			}

			
				position: relative;
				top: 50px;
				left: 50px;
				width: 100px;
				height: 100px;
				background: pink;
			}

			
				position: relative;
				top: 25px;
				left: 25px;
				width: 50px;
				height: 50px;
				background: yellow;
			}
		</style>
	</head>
	<body>
		<div>
			<div>
				<div></div>
			</div>
		</div>
		<script type="text/javascript">
			var wrap = document.getElementById('wrap');
			wrap.addEventListener('click', function() {
				alert("Π― ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚");
			}, false);
		</script>
	</body>
</html>

Богласно ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΠΎ любой части Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ div (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ, ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ элСмСнтами) появится Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ сообщСниС Β«Π― ΠΎΠ±Π΅Ρ€Π½ΡƒΠ»ΠΎΡΡŒΒ», Π° ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ div Π½Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π°. Π‘Ρ„Π΅Ρ€Π° дСйствия события рСгистрации элСмСнта Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сам элСмСнт находится Π½Π° страницС Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ пространства, Π½ΠΎ Ρ‚Π°ΠΊ Π»ΠΈ это Π½Π° самом Π΄Π΅Π»Π΅?
просто помСститС синий div Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ обтСкания Ρ‡Π΅Ρ€Π΅Π· CSS, HTML ΠΈ js останутся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			
				width: 200px;
				height: 200px;
				background: orange;
			}

			
				position: relative;
				top: 50px;
				left: 50px;
				width: 100px;
				height: 100px;
				background: 
			}

			 / * модифицируСтся Π²Π΅Ρ€Ρ… Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ * /
			
				position: relative;
				top: 152px;
				left: 25px;
				width: 50px;
				height: 50px;
				background: 
			}
		</style>
	</head>
	<body>
		<div>
			<div>
				<div></div>
			</div>
		</div>
		<script type="text/javascript">
			var wrap = document.getElementById('wrap');
			wrap.addEventListener('click', function() {
				alert("Π― ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚");
			}, false);
		</script>
	</body>
</html>

ΠŸΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΠΎ синСму элСмСнту div ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ появляСтся сообщСниС Β«Π― ΠΎΠ±Π΅Ρ€Π½ΡƒΠ»ΠΎΡΡŒΒ». Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ: ΠΊΠΎΠ³Π΄Π° элСмСнт зарСгистрирован с событиСм, объСм этого события составляСт: сам элСмСнт Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ пространство страницы плюс ΠΎΠ±Π»Π°ΡΡ‚ΡŒ пространства, Π·Π°Π½ΡΡ‚ΡƒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ элСмСнтом (Ссли ΠΎΠ½ Π²Π»ΠΎΠΆΠ΅Π½ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΉ элСмСнт, Π° объСм события — это пространство, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ΅ самим ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹ΠΌ элСмСнтом).

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ выполнСния мСроприятий

Из области дСйствия события ΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° элСмСнт зарСгистрирован для события, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия этого события составляСт: собствСнноС пространство страницы элСмСнта плюс пространство, занятоС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ элСмСнтом (Ссли Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ элСмСнт ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ элСмСнт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, событиС ОбъСм дСйствия — это Ρ€Π°Π·ΠΌΠ΅Ρ€ пространства, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ самим элСмСнтом ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°), поэтому, ΠΊΠΎΠ³Π΄Π° происходит событиС Ρ‰Π΅Π»Ρ‡ΠΊΠ°, ΠΊΠ°ΠΊΠΎΠ² порядок ΠΈΡ… выполнСния?

ВсплытиС событий

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ принимаСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ элСмСнтом (Ρ‚. Π•. Π‘Π°ΠΌΡ‹ΠΌ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅) Π² Π½Π°Ρ‡Π°Π»Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ распространяСтся Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ².
ΠœΡ‹ мСняСм логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий Π½Π° false, Ρ‡Ρ‚ΠΎΠ±Ρ‹ элСмСнт находился Π² Ρ„Π°Π·Π΅ восходящСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ для Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий.
Код CSS ΠΈ HTML остаСтся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΠ΄ JS:

var wrap = document.getElementById('wrap');
var outer = document.getElementById('outer');
var inner = document.getElementById('inner');

wrap.addEventListener('click',function(){
  alert("Π― ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚");
},false);
outer.addEventListener('click',function(){
  alert('Я внСшний');
},false);
inner.addEventListener('click',function(){
  alert('Π― Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ');
},false);

ПослС экспСримСнта ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ срабатывании события Ρ‰Π΅Π»Ρ‡ΠΊΠ° сначала появляСтся сообщСниС Β«Π― Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉΒ», Π·Π°Ρ‚Π΅ΠΌ Β«Π― внСшний» ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Β«Π― Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒΒ». Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° элСмСнт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ Π΅Π³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты находятся Π² Когда ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий вызываСтся Π½Π° Ρ„Π°Π·Π΅ восходящСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ: событиС выполняСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий Π² порядкС восходящСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ событий, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ принимаСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ элСмСнтом (Ρ‚.Π΅. самым Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅), Π° Π·Π°Ρ‚Π΅ΠΌ распространяСтся Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π£Π·Π΅Π».

Π—Π°ΠΏΠΈΡΡŒ событий

Π—Π°Ρ…Π²Π°Ρ‚ события ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ событиС Ρ€Π°Π½ΡŒΡˆΠ΅, Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ событиС послСдним.
НапримСр, ΠΌΡ‹ мСняСм логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий Π½Π° true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ элСмСнт находился Π² Ρ„Π°Π·Π΅ Π·Π°Ρ…Π²Π°Ρ‚Π° для Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий.
Код CSS ΠΈ HTML остаСтся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΠ΄ JS:

var wrap = document.getElementById('wrap');
var outer = document.getElementById('outer');
var inner = document.getElementById('inner');
    
wrap.addEventListener('click',function(){
  alert("Π― ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚");
},true);
outer.addEventListener('click',function(){
  alert('Я внСшний');
},true);
inner.addEventListener('click',function(){
  alert('Π― Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ');
},true);

Когда ΠΌΡ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° свСтло-синюю Ρ‡Π°ΡΡ‚ΡŒ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ страницы, сначала появляСтся сообщСниС Β«Π― ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΠΎΒ», Π·Π°Ρ‚Π΅ΠΌ всплываСт Β«Π― внСшний» ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, всплываСт Β«Π― Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉΒ». Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° элСмСнт ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ Π΅Π³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Π½Π° этапС Π·Π°Ρ…Π²Π°Ρ‚Π°: событиС выполняСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Π² порядкС Π·Π°Ρ…Π²Π°Ρ‚Π° событий.

ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ всплытиС ΠΈ Π·Π°Ρ…Π²Π°Ρ‚ событий

ΠœΠ΅Ρ‚ΠΎΠ΄ w3c — e.stopPropagation (), Π° IE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ e.cancelBubble = true.
Π•Π³ΠΎ функция Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ восходящСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ элСмСнта, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ восходящСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ события Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ элСмСнта Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт. Но это Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

function stopBubble(e) { 
	if ( e && e.stopPropagation ) 
	   e.stopPropagation(); 
	else 
	   window.event.cancelBubble = true; 
	}

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ событиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:
ΠœΠ΅Ρ‚ΠΎΠ΄ w3c — e.preventDefault (), Π° IE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ e.returnValue = false;

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, элСмСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Если сам элСмСнт Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ повСдСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹Π·ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Какой элСмСнт ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ? НапримСр, ссылка, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ Ρ‚. Π”. Если для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° cancelable ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Event установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ отсутствуСт.Π’ настоящСС врСмя, Π΄Π°ΠΆΠ΅ Ссли Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²Ρ‹Π·ΠΎΠ² preventDefault Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

<a href="http://www.baidu.com/" >baidu</a>
var a = document.getElementById("test");
a.onclick =function(e){
	if(e.preventDefault){
	    e.preventDefault();
	}else{
	window.event.returnValue == false;
	}
}

return false
javascript return false ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ jQuery, ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΈ всплытиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Бписок Ρ€ΠΎΠ΄Π½Ρ‹Ρ… событий Javascript

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ HTML-элСмСнты ОписаниС

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

click onClick * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ (Π½Π°ΠΆΠ°Ρ‚Π° ΠΈ ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ)
dblclick onDblClick * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты Π”Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ
contextmenu onContextmenu * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты Π©Π΅Π»Ρ‡ΠΎΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° элСмСнтС
selectstart onselectstart * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты Начало выдСлСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.
ИзмСнСниС выдСлСния скриптом.
mousewheel onMousewheel * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты НаТата ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта
mousemove onMouseMove * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ курсора ΠΌΡ‹ΡˆΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта
mouseout onMouseOut * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты ΠšΡƒΡ€ΡΠΎΡ€ ΠΌΡ‹ΡˆΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Π½ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта
mouseover onMouseOver * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты ΠšΡƒΡ€ΡΠΎΡ€ ΠΌΡ‹ΡˆΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт
mouseup onMouseUp * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты ΠžΡ‚ΠΏΡƒΡ‰Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта
mousedown onMouseDown * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты НаТата ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта

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

keydown onKeyDown * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты НаТата клавиша Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅
keypress onKeyPress * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты НаТата ΠΈ ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π° клавиша Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅
keyup onKeyUp * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты ΠžΡ‚ΠΏΡƒΡ‰Π΅Π½Π° клавиша Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅

Бобытия элСмСнтов Ρ„ΠΎΡ€ΠΌ

focus onFocus A, AREA, BUTTON, INPUT, LABEL, SELECT, TEXTAREA ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ элСмСнтом фокуса (Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΡŒΡŽ Π½Π° элСмСнтС ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши табуляции)
blur onBlur A, AREA, BUTTON, INPUT, LABEL, SELECT, TEXTAREA ΠŸΠΎΡ‚Π΅Ρ€Ρ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ элСмСнтом фокуса, Ρ‚.Π΅. ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ элСмСнту. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΌΡ‹ΡˆΡŒΡŽ Π²Π½Π΅ элСмСнта Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши табуляции
change onChange INPUT, SELECT, TEXTAREA ИзмСнСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ элСмСнтов Ρ„ΠΎΡ€ΠΌΡ‹. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ послС ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ элСмСнтом фокуса, Ρ‚.Π΅. послС события blur
reset onReset FORM Бброс Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡ‹ ( Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅
<input type=»reset»> )
select onSelect INPUT, TEXTAREA Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ тСкста Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ элСмСнтС
submit onSubmit FORM ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡ‹ ( Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅
<input type=»submit»> )
abort onAbort IMG, input type=»img» ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния

Бобытия ΠΎΠΊΠ½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

load onLoad BODY, FRAMESET Π—Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°
unload onUnload BODY, FRAMESET ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° закрытия ΠΎΠΊΠ½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°
error onError IMG, WINDOW Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ошибки выполнСния сцСнария
move onMove WINDOW ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
resize onResize WINDOW ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠΊΠ½Π°
scroll onScroll * ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС HTML-элСмСнты ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ области

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий (ΠΎΠ±Π·ΠΎΡ€) — ссылка Π½Π° событиС

Бобытия — это сигналы, запускаСмыС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΊΠ½Π° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡŽΡ‚ ΠΎΠ± измСнСниях Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈΠ»ΠΈ срСдС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ события, позволяя Π²Π΅Π±-страницам ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° измСнСния.

Π­Ρ‚Π° страница прСдставляСт собой ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Β«Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅Β» ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с событиями ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ событий. Новым Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ слСдуСт вмСсто этого ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² события.

Бобытия Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° ΠΈ / ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ страницами для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚.НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ событиях, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈΠ»ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, см. Π Π°Π·Π΄Π΅Π»Ρ‹ событий Π² Window ΠΈ Document .

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ссылку Π½Π° событиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JavaScript Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ события для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… API, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ анимация, ΠΌΠ΅Π΄ΠΈΠ° ΠΈ Ρ‚. Π΄.

Π•ΡΡ‚ΡŒ Π΄Π²Π° Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ рСгистрации ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Код ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ запускС события, Π½Π°Π·Π½Π°Ρ‡ΠΈΠ² Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ свойству onevent Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ элСмСнта ΠΈΠ»ΠΈ зарСгистрировав ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² качСствС ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ для элСмСнта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° addEventListener () .Π’ любом случаС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ интСрфСйсу Event (ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌΡƒ интСрфСйсу). ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ нСсколько ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ (ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ событий.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅

Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ настройкС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий с использованиСм Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² HTML onevent Π½Π΅ рСкомСндуСтся! Они Ρ€Π°Π·Π΄ΡƒΠ²Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. ВстроСнныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий.

ИспользованиС свойств onevent

По соглашСнию, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Javascript, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠ΅ события, ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ свойства Β«oneventΒ» (ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прСфикса Β«onΒ» ΠΊ ΠΈΠΌΠ΅Π½ΠΈ события).Π­Ρ‚ΠΈ свойства Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ для запуска связанного ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈ запускС события, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ нСпосрСдствСнно вашим собствСнным ΠΊΠΎΠ΄ΠΎΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° событий, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ свойству onevent. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ события Π² элСмСнтС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий. ΠŸΡ€ΠΈ нСобходимости ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, присвоив Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ свойству Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

НиТС ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ greet () для события click , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойство onclick .

  const btn = document.querySelector ('ΠΊΠ½ΠΎΠΏΠΊΠ°');

function greet (event) {
  
  console.log ('ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ:', Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹)
  }

  btn.onclick = ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ;
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ событиС, пСрСдаСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ события Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ события Π»ΠΈΠ±ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚, Π»ΠΈΠ±ΠΎ являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ интСрфСйса Event .

EventTarget.addEventListener

Π‘Π°ΠΌΡ‹ΠΉ Π³ΠΈΠ±ΠΊΠΈΠΉ способ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий для элСмСнта — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ EventTarget.addEventListener ΠΌΠ΅Ρ‚ΠΎΠ΄. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ элСмСнту нСсколько ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΉ, Π° для ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ нСобходимости (с использованиСм EventTarget.removeEventListener ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий позволяСт, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·Π½Ρ‹Π΅ дСйствия Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Π±ΠΎΠ»Π΅Π΅ слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… очистка старых / Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

НиТС ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ greet () ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² качСствС ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ / ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события click (ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ вмСсто ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ событиС пСрСдаСтся ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ события.

  const btn = document.querySelector ('ΠΊΠ½ΠΎΠΏΠΊΠ°');

function greet (event) {
  
  console.log ('ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ:', Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹)
  }

btn.addEventListener (Β«Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒΒ», ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ);  

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ / ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для управлСния аспСктами Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΈ удалСния событий.Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° справочной страницС EventTarget.addEventListener .

ИспользованиС сигнала прСрывания

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ событий являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования сигнала прСрывания для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ очистки Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий.

Π­Ρ‚ΠΎ дСлаСтся ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ AbortSignal Π²Ρ‹Π·ΠΎΠ²Ρƒ addEventListener () для всСх ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ вмСстС. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ abort () Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅, Π²Π»Π°Π΄Π΅ΡŽΡ‰Π΅ΠΌ AbortSignal , ΠΈ ΠΎΠ½ ΡƒΠ΄Π°Π»ΠΈΡ‚ всС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ с этим сигналом.НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AbortSignal :

  const controller = Π½ΠΎΠ²Ρ‹ΠΉ AbortController ();

btn.addEventListener ('Ρ‰Π΅Π»Ρ‡ΠΎΠΊ', функция (событиС) {
  
  console.log ('ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ:', Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹)
  }, {сигнал: controller.signal});  

Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий, созданный ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ запуск событий — ссылка Π½Π° событиС

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ события DOM.Π’Π°ΠΊΠΈΠ΅ события ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ синтСтичСскими событиями , Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ событий, запускаСмых самим Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ.

Бобытия ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструктора Event ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  const event = Π½ΠΎΠ²ΠΎΠ΅ событиС ('сборка');


elem.addEventListener ('сборка', функция (e) {}, лоТь);


elem.dispatchEvent (событиС);  

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ EventTarget.dispatchEvent ().

Π­Ρ‚ΠΎΡ‚ конструктор поддСрТиваСтся Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Internet Explorer).Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Internet Explorer) см. Π‘Ρ‚Π°Ρ€ΠΎΠΌΠΎΠ΄Π½Ρ‹ΠΉ способ Π½ΠΈΠΆΠ΅.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… — CustomEvent ()

Для добавлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ события сущСствуСт интСрфСйс CustomEvent, ΠΈ свойство detail ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….
НапримСр, событиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создано ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  const event = Π½ΠΎΠ²ΠΎΠ΅ CustomEvent ('сборка', {Π΄Π΅Ρ‚Π°Π»ΡŒ: elem.dataset.time});  

Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Π΅ событий:

  function eventHandler (e) {
  приставка.log ('ВрСмя:' + e.detail);
}
  

Π‘Ρ‚Π°Ρ€ΠΎΠΌΠΎΠ΄Π½Ρ‹ΠΉ способ

Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ созданию событий ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ API, Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ Java. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с document.createEvent () :

.
 
const event = document.createEvent ('Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅');


event.initEvent ('ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ', истина, истина);


elem.addEventListener ('build', function (e) {
  
}, Π»ΠΎΠΆΠ½Ρ‹ΠΉ);


elem.dispatchEvent (событиС);

  

Π’ΠΎΠ·Π±ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ событий

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ событиС ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ элСмСнта, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ Π΅Π³ΠΎ; ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ:

  <Ρ„ΠΎΡ€ΠΌΠ°>
  

  
  const form = Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.querySelector ('Ρ„ΠΎΡ€ΠΌΠ°');
const textarea = document.querySelector ('textarea');


const eventAwesome = new CustomEvent ('awesome', {
  ΠΏΡƒΠ·Ρ‹Ρ€ΠΈ: ΠΏΡ€Π°Π²Π΄Π°,
  ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ: {text: () => textarea.value}
});


form.addEventListener ('ΠΊΡ€ΡƒΡ‚ΠΎ', e => console.log (e.detail.text ()));


textarea.addEventListener ('Π²Π²ΠΎΠ΄', e => e.target.dispatchEvent (eventAwesome));
  

ДинамичСскоС созданиС ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° событий

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚ΡŒ события, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ созданы:

  <Ρ„ΠΎΡ€ΠΌΠ°>
  

  
  const form = Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.querySelector ('Ρ„ΠΎΡ€ΠΌΠ°');
const textarea = document.querySelector ('textarea');

form.addEventListener ('ΠΊΡ€ΡƒΡ‚ΠΎ', e => console.log (e.detail.text ()));

textarea.addEventListener ('Π²Π²ΠΎΠ΄', функция () {
  
  
  this.dispatchEvent (Π½ΠΎΠ²ΠΎΠ΅ CustomEvent ('ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰Π΅', {ΠΏΡƒΠ·Ρ‹Ρ€ΠΈ: истина, Π΄Π΅Ρ‚Π°Π»ΡŒ: {тСкст: () => textarea.value}}))
});
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ дСмонстрируСтся имитация Ρ‰Π΅Π»Ρ‡ΠΊΠ° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ события Ρ‰Π΅Π»Ρ‡ΠΊΠ°) Π½Π° Ρ„Π»Π°ΠΆΠΊΠ΅ с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² DOM. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² дСйствии.

  function simulateClick () {
  const event = new MouseEvent ('click', {
    Π²ΠΈΠ΄: ΠΎΠΊΠ½ΠΎ,
    ΠΏΡƒΠ·Ρ‹Ρ€ΠΈ: ΠΏΡ€Π°Π²Π΄Π°,
    отмСняСмый: ΠΏΡ€Π°Π²Π΄Π°
  });
  const cb = Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.getElementById ('Ρ„Π»Π°ΠΆΠΎΠΊ');
  const cancelled =! cb.dispatchEvent (событиС);

  if (ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎ) {
    
    ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ (Β«ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎΒ»);
  } Π΅Ρ‰Π΅ {
    
    ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ (Β«Π½Π΅ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎΒ»);
  }
}  

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ — Π²Π΅Π±-API | MDN

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Event прСдставляСт событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ происходит Π² DOM.

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ΠΎ дСйствиСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ ΠΈΠ»ΠΈ наТатия Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ, Π»ΠΈΠ±ΠΎ сгСнСрировано API для отобраТСния Ρ…ΠΎΠ΄Π° выполнСния асинхронной Π·Π°Π΄Π°Ρ‡ΠΈ.Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ HTMLElement.click () элСмСнта ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² событиС, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ² Π΅Π³ΠΎ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ EventTarget.dispatchEvent () .

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

МногиС элСмСнты DOM ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ настроСны Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌ (ΠΈΠ»ΠΈ «ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΠ΅») этих событий ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ (ΠΈΠ»ΠΈ «ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ»).ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ (ΠΈΠ»ΠΈ Β«ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡΒ») ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ элСмСнтам HTML (Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ