ΠΠ°ΠΊ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ jQuery Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅: ΠΎΠΏΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ GitHub
ΠΠ΅ ΡΠ°ΠΊ Π΄Π°Π²Π½ΠΎ GitHub ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ jQuery Π² ΡΠ²ΠΎΡΠΌ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΠΊΠΎΠ΄Π΅. ΠΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π»ΠΈ ΠΏΠΎΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°Π»Π°ΡΡ ΠΈΡ ΡΠ°Π±ΠΎΡΠ° Ρ jQuery, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΠΏΠΎΡΠ° ΠΎΡ Π½Π΅Π³ΠΎ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ, ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΠ»ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ².
ΠΠ°ΡΠ΅ΠΌ jQuery Π±ΡΠ» Π½ΡΠΆΠ΅Π½ ΡΠ°Π½ΡΡΠ΅?
jQuery 1.2.1 Π²ΠΎΡΡΠ» Π² ΡΠΈΡΠ»ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ GitHub Π² ΠΊΠΎΠ½ΡΠ΅ 2007 Π³ΠΎΠ΄Π°. ΠΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π·Π° Π³ΠΎΠ΄ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Google Π²ΡΠΏΡΡΡΠΈΠ» ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Chrome. ΠΠ° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ DOM Ρ ΠΏΠΎΠΌΠΎΡΡΡ CSS-ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ°, Π½Π΅ Π±ΡΠ»ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ ΠΊ ΡΡΠΈΠ»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ XMLHttpRequest, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉΒ Internet Explorer, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ API, Π±ΡΠ» ΠΏΠ»ΠΎΡ ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ.
Π‘ jQuery ΡΡΠ°Π»ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ DOM, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΠΈ Π΄Π΅Π»Π°ΡΡ AJAX-Π·Π°ΠΏΡΠΎΡΡ. Π£ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΄Π΅Π»ΡΠ»ΠΈΡΡ ΡΡΠ΅Π΄ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ . Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ JavaScript, ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ jQuery, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ . ΠΠ° Π·Π°ΡΠ΅ GitHub, ΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΡΠ°Π»ΠΈ ΡΠΎΡΠΌΡ, ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ jQuery ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±ΡΡΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈΒ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ΄ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ.
ΠΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ jQuery ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ» ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠ°Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° GitHub.com: pjax ΠΈ facebox.
ΠΠ΅Π±-ΡΡΠ°Π½Π΄Π°ΡΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³ΠΎΠ΄Ρ
Π‘ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ GitHub ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΡΡ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Ρ ΡΠΎΡΠ½ΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°Π»Π° Π·Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ JavaScript-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ. ΠΠ΄Π½Π° ΠΈΠ· Π²Π΅ΡΠ΅ΠΉ, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡΒ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ»Π΅Π΄ΠΈΠΌ, β ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΠΎΠ»Π³, ΠΏΠΎΡΠΎΠΉ Π²ΡΡΠ°ΡΡΠ°ΡΡΠΈΠΉ ΠΈΠ· Π½Π΅ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ ΡΠ²ΠΎΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ²ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΠ³Π΄Π° ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄ΠΎΡΠ»Π° Π΄ΠΎ jQuery, ΠΌΡ ΡΡΠ°Π²Π½ΠΈΠ»ΠΈ Π΅Π³ΠΎ Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΠΈΠΌΡΡ Π²Π΅Π±-ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ ΠΈ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ:
- Π¨Π°Π±Π»ΠΎΠ½Β
$(selector)
ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΒquerySelectorAll()
; - ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ CSS-ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡΒ Element. classList;
- CSS ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅Β Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΡΡΠΈΠ»Π΅ΠΉ, Π° Π½Π΅ Π² JavaScript;
$.ajax
-Π·Π°ΠΏΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Fetch Standard;- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΒ
addEventListener()
Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ°Π±ΠΈΠ»Π΅Π½ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ; - Π¨Π°Π±Π»ΠΎΠ½ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ;
- Π‘ ΡΠ²ΠΎΠ»ΡΡΠΈΠ΅ΠΉ JavaScript ΡΠ°ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Ρ Π°ΡΠ° jQuery ΡΡΡΠ°ΡΠ΅Π»Π°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ» Π½Π°ΡΠΈΠΌΒ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ ΠΎ ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡΒ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΏΠΈΡΠ°ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
$('.js-widget') .addClass('is-loading') .show()
Π’Π°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΡΠΎΡΡ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ Π½Π°ΡΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΡΠ°. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² js-widget
, ΠΏΠΎ Π΅Π³ΠΎ Π·Π°Π΄ΡΠΌΠΊΠ΅, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅: ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅? Π Π΅ΡΠ»ΠΈ ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° js-widget
, Π±ΡΠ΄Π΅Ρ Π»ΠΈ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠΈΡ Π½Π°ΠΌ, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ? ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ jQuery ΠΌΠΎΠ»ΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π²ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ ΠΏΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ; ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π°Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π±Π°Π³ΠΎΠΌ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΡΠΈΡΠ΅ΠΉ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½Π°ΠΌ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π½Π°ΡΠ°ΡΡ Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΏΡ Ρ Flow, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΈ ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ ΠΏΠ»ΠΎΡ
ΠΎ ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° jQuery ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°. ΠΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΌΡ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Flow, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΡΠ΅ΠΆΠΈΠΌ @flow weak
, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Π½Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΈΠΏΡ ΠΊ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Π±ΡΠ»Π° Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ.
Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠ΅ ΠΎΡΠΊΠ°Π· ΠΎΡ jQuery ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π²Π΅Π±-ΡΡΠ°Π½Π΄Π°ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅Π±-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ MDN Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²Π΅Ρ Π½Π°ΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π° 30 ΠΠ±Π°ΠΉΡ, ΡΡΠΎ Π² ΠΈΡΠΎΠ³Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript.
ΠΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄
Π₯ΠΎΡΡ Π½Π°ΡΠ° ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠ΅Π»Ρ Π±ΡΠ»Π° Π½Π΅ Π·Π° Π³ΠΎΡΠ°ΠΌΠΈ, ΠΌΡ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΠ΅ΡΡΡΡΡ Π½Π° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Ρ jQuery Π½Π° ΡΠΈΡΡΡΠΉ JS. ΠΠΎ Π²ΡΡΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΡΠΏΠ΅ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ Π±Ρ ΡΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΡΠ°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΠΌ Π±Ρ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ:
- ΠΠ°ΡΠ°Π»ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² jQuery Π½Π° ΡΡΡΠΎΠΊΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ»Π΅Π΄ΠΈΠ»ΠΈ Π·Π° Π³ΡΠ°ΡΠΈΠΊΠΎΠΌ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π»ΠΈΠ±ΠΎ ΠΏΠ°Π΄Π°Π΅Ρ, Π½ΠΎ Π½Π΅ ΡΠ°ΡΡΡΡ.
- ΠΡΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ jQuery Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π΅. Π§ΡΠΎΠ±Ρ Π΄ΠΎΡΡΠΈΡΡ ΡΡΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈΒ eslint-plugin-jquery, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π» CI-ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ jQuery Π²ΡΠΎΠ΄Π΅
$.ajax
. - Π ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ°Π²ΠΈΠ» eslint, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΠΏΡΠ°Π²ΠΈΠ»
eslint-disable
Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ . ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΎ ΡΠΈΡΠ°ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΡΠ»ΡΠΆΠΈΡΡ ΡΠ²Π½ΡΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΎΡΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π°ΡΠΈ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° - ΠΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ pull requestβΠ° ΠΎΡΡΠ°Π²Π»ΡΠ» ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠ°ΠΊ ΠΊΡΠΎ-ΡΠΎ Ρ
ΠΎΡΠ΅Π» Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ
eslint-disable
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅Π²ΡΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°Π½Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ. - ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ»Π° ΡΠ²Π½ΠΎ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ jQuery-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² pjax ΠΈ facebox, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΡΡΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΈΠ·Π½ΡΡΡΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½Π° ΡΠΈΡΡΠΎΠΌ JS. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π²ΡΠ΅Π»ΠΈΠ»ΠΎ Π² Π½Π°Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π΅.
- ΠΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ»ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ rails-behaviors, Π½Π°ΡΠΈΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ Π΄Π»Ρ Ruby on Rails, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° AJAX ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΡΠΎΡΠΌΠ°ΠΌ:
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠΈ Π²ΡΠ·ΠΎΠ²Ρ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠΆΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°
ajax*
, ΠΈ ΡΠΎΡΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅; ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠ·Π½ΡΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡfetch()
. - ΠΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈ ΡΠ²ΠΎΡ ΡΠ±ΠΎΡΠΊΡ jQuery, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ±ΠΈΡΠ°Π»ΠΈ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π»ΡΠ³ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ Π²ΡΠ΅Ρ
jQuery-ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ
CSS-ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅Π»Π΅ΠΊΡΠΎΡΠΎΠ² Π²ΡΠΎΠ΄Π΅
:visible
ΠΈΠ»ΠΈ:checkbox
Β ΠΌΡ ΡΠΌΠΎΠ³Π»ΠΈ ΡΠ±ΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Sizzle; Π° ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ$.ajax
-Π²ΡΠ·ΠΎΠ²Ρ Π½Π°fecth()
, ΠΌΡ ΡΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ AJAX. ΠΡ ΡΠ±ΠΈΠ²Π°Π»ΠΈ Π΄Π²ΡΡ Π·Π°ΠΉΡΠ΅Π² ΡΠ°Π·ΠΎΠΌ: ΡΠΌΠ΅Π½ΡΡΠ°Π»ΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ ΡΠΎ, ΡΡΠΎ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π½Π°ΠΏΠΈΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΄Π°Π»ΡΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. - ΠΠ»ΡΠ΄Ρ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°, ΠΌΡ ΡΡΠ°ΡΠ°Π»ΠΈΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Internet Explorer Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ IE ΠΏΠ°Π΄Π°Π»ΠΎ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ³Π°, ΠΌΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π»ΠΈ Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΈ ΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ . ΠΡΠΊΠ°Π· ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ IE 8-9 Π½Π° ΡΠ°Π½Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π°ΡΠΈΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ Β«Π·Π°ΠΏΠΎΠ»ΠΈΡΠΈΠ»Π»ΠΈΡΡΒ».
- Π ΡΠ°ΠΌΠΊΠ°Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° GitHub ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠ»ΠΈΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ HTML ΠΏΠΎ-ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ JavaScript Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎΒ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ. Π ΠΈΡΠΎΠ³Π΅ Π΄Π°ΠΆΠ΅ ΡΠ΅ ΡΠΎΡΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ»ΡΡΡΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JS, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π°ΠΆΠ΅ Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ JavaScript. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π°ΠΌ Π΄Π°ΠΆΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ Π½Π° ΡΠΈΡΡΠΎΠΌ JS.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΈΠΌ ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΡΡΠΈΠ»ΠΈΡΠΌ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠΌΠΎΠ³Π»ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π½Π°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ jQuery Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΡΡΡΠ»Π°ΡΡΠ΅ΠΉΡΡ Π½Π° ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
Custom Elements: ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
ΠΠ΄Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, Π½Π°Π΄Π΅Π»Π°Π²ΡΠ°Ρ ΡΡΠΌΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ, β Custom Elements: Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² Π±ΡΠ°ΡΠ·Π΅Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ°ΡΠ°ΡΡ, ΠΏΠ°ΡΡΠΈΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π°ΠΉΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ v0 Ρ 2014 Π³ΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ, ΠΌΡ ΡΠΈΠ»ΡΠ½ΠΎ Π² ΡΡΠΎ Π½Π΅ Π²ΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΠΈΡΡ. Π Π½Π°ΡΠ°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Ρ 2017 Π³ΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Web Components v1, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΊΠ°ΠΊ Π² Chrome, ΡΠ°ΠΊ ΠΈ Π² Safari.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Ρ jQuery ΠΌΡ ΠΈΡΠΊΠ°Π»ΠΈ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠ΄ facebox, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ
Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ <details-dialog>
.
ΠΠ°ΡΠ° ΠΎΠ±ΡΠ°Ρ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΈ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΌΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Ρ
ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π² ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅ΡΡ
Π½Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, <local-time>
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΊΡ, Π½ΠΎ Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π² ΠΌΠ΅ΡΡΠ½ΡΠΉ ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΡ, Π° <details-dialog>
, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π²Π½ΡΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° <details>
, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ Π΄Π°ΠΆΠ΅ Π±Π΅Π· JavaScript, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΡΡΡΠ΅Π½ Π΄ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ <local-time>
:
// ΠΠ»Π΅ΠΌΠ΅Π½Ρ local-time ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ // ΡΠ°ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. // // ΠΡΠΈΠΌΠ΅Ρ: // Sep 6, 2018 // class LocalTimeElement extends HTMLElement { static get observedAttributes() { return ['datetime'] } attributeChangedCallback(attrName, oldValue, newValue) { if (attrName === 'datetime') { const date = new Date(newValue) this.textContent = date.toLocaleString() } } } if (!window.customElements.get('local-time')) { window.LocalTimeElement = LocalTimeElement window.customElements.define('local-time', LocalTimeElement) }
ΠΠ΄ΠΈΠ½ ΠΈΠ· Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² Web Components, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅Π½ΡΡΡ, βΒ Shadow DOM. Π£ Shadow DOM Π΅ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π΄Π»Ρ ΡΠ°ΡΠΊΡΡΡΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ Π²Π΅Π±Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠ»Π»ΠΈΠ½Π³. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΈΡΠΈΠ»Π»ΠΈΠ½Π³ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΡΡΡΠΌΠΈ DOM, Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ, Π΄Π»Ρ Π½Π°Ρ Π½Π΅ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½Π΅.
ΠΠΎΠ»ΠΈΡΠΈΠ»Π»Ρ
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠ»Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ , ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Ρ.Π΅. ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ JavaScript-Π±Π°Π½Π΄Π»Π° Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌΠΈ.
- github/eventlistener-polyfill
- github/fetch
- github/form-data-entries
- iamdustan/smoothscroll
- javan/details-element-polyfill
- jonathantneal/closest
- kumarharsh/custom-event-polyfill
- marvinhagemeister/request-idle-polyfill
- mathiasbynens/Array.from
- mathiasbynens/String.prototype.codePointAt
- mathiasbynens/String.prototype.endsWith
- mathiasbynens/String.prototype.startsWith
- medikoo/es6-symbol
- nicjansma/usertiming.js
- rubennorte/es6-object-assign
- stefanpenner/es6-promise
- webcomponents/template
- webcomponents/URL
- webcomponents/webcomponentsjs
- WebReflection/url-search-params
- yola/classlist-polyfill
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅: Β«Π€ΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° JavaScriptΒ»
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ Β«Removing jQuery from GitHub. com frontendΒ»
Alpine.js — Π»ΡΠ³ΠΊΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° jQuery
Π― Π΄Π°Π²Π½ΠΎ ΡΠΆΠ΅ ΠΏΡΠΈΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡ ΠΊ Alpine.js, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ js-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΡΡΠ΄Π° Π΄ΡΡΠ³ΠΈΡ . ΠΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ ΠΎΠ½ ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ Vue.js, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ jQuery.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ°ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅ ΡΠ΅ Β«ΡΠΈΡΠΊΠΈΒ», ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ React ΠΈΠ»ΠΈ Vue. ΠΠΎΠΎΠ±ΡΠ΅ ΡΠ°Π±ΠΎΡΠ° Ρ JavaScript Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ β Π²Π½Π°ΡΠ°Π»Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ/ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΏΠΎΡΠ»Π΅ Π΄Π΅Π»Π°Π΅ΠΌ Ρ Π½ΠΈΠΌΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ.
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΠ±ΡΡΠΈΠΉ β ΠΏΡΠΎΠΏΠΈΡΠ°Π»ΠΈ Π»ΠΈΠ±ΠΎ onclick ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ html-ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π»ΠΈΠ±ΠΎ Π½Π°Π²Π΅ΡΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Β«ΡΠ»ΡΡΠ°ΡΠ΅Π»ΡΒ» addEventListener ΠΈ Π΄Π°Π»ΡΡΠ΅ ΡΠ΅ΡΠ΅Π· js-ΡΡΠ½ΠΊΡΠΈΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ JavaScript ΠΎΡΠ΅Π½Ρ ΡΠΆ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π΅Π½, Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½, ΡΠΎ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ β jQuery ΠΊΠ°ΠΊ ΡΠ°Π· ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ . Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ js Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΡΠ½Π΅ΠΉ.
ΠΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ js-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ²ΠΎΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Β«ΡΠ°Ρ Π°ΡΠ΅Β» β ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π²Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. Π’Π°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅ Π΄Π°ΠΆΠ΅ ΡΠ΄ΠΎΠ±Π½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ jQuery (ΠΈ Π΄ΡΡΠ³ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²).
ΠΠ° ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡΡΡ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ β ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΡΡΠ΅Π±ΡΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Node.js, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ. ΠΠ°, ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ React ΠΈΠ»ΠΈ Vue, Π½ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡ js-ΡΠ°ΠΉΠ»ΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ: 120 ΠΈ 93ΠΠ±. ΠΠ°ΠΆΠ΅ jQuery 3.5 Π²Π΅ΡΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅ β 89ΠΠ±. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΠ΅ (Π° js-ΠΊΠΎΠ΄ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ°), ΡΠΎ Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ Vue. Π ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΠ°ΠΊΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΌΡ Π»ΠΈΡΠ°Π΅ΠΌΡΡ Π²ΡΠ΅Ρ Β«ΠΏΠ»ΡΡΠ΅ΠΊΒ» ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Β«ΡΠ°Ρ Π°ΡΠ°Β».
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Node.js ΡΠΎΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π°, Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΏΡΠΎΡΡΡΠ΅ Π²Π΅ΡΠΈ, Π²ΡΠΎΠ΄Π΅ ΡΠΌΠ΅Π½ΠΈΡΡ css-ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ click Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. Π‘ΡΠ°Π²ΠΈΡΡ ΡΠ°Π΄ΠΈ ΡΡΠΎΠ³ΠΎ Π³ΠΈΠ³Π°Π½ΡΡΠΊΠΈΠΉ Node.js Π½Π΅ΡΠ°Π·ΡΠΌΠ½ΠΎ.
Alpine.js Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ (Π²ΡΠ΅Π³ΠΎ 25ΠΠ±), Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Β«ΡΠ°Ρ Π°ΡΒ» ΠΊΠ°ΠΊ ΠΈ Β«Π±ΠΎΠ»ΡΡΠΈΠ΅Β» ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ.
ΠΠ°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎ Alpine.js ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ BODY, ΡΡΠΎ Π΄Π°ΡΡ ΠΏΡΠΈΡΠΎΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠ»ΠΈ jQuery (ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ) ΠΌΡ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π² ΡΠ΅ΠΊΡΠΈΡ HEAD (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠ΅Π»Π΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΠ΅ΡΠΈΡΡΡΡ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ), ΡΠΎ Ρ Alpine.js ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°Π΅ΠΌΡΡ ΠΎΠ± ΡΡΠΎΠΌ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ js-ΡΠ°ΠΉΠ»:
<script src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine.min.js"></script>
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Alpine.
ΠΠ΄Π΅ΡΡ Ρ Ρ ΠΎΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ jQuery ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°ΡΠΈΠ²Π½ΡΠΌ JS.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ click Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅. ΠΠ±ΡΡΠ½ΠΎ ΠΌΡ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ css-ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ id ΠΈ ΠΏΠΎΡΠΎΠΌ ΡΠ΅ΠΏΠ»ΡΠ΅ΠΌΡΡ ΠΊ Π½Π΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ onclick, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ.
Π Alpine ΡΡ Π΅ΠΌΠ° Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π½Π° ΠΈΠ· Β«Π±ΠΎΠ»ΡΡΠΈΡ Β» ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² (Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ β ΠΈΠ· Vue), Π³Π΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. Π Π½ΡΠΌ ΠΌΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ DIV Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΈΠ»ΠΈ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ β Π΅ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Β«ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΒ». Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π΅Π΄ΠΈΠ½ΡΡ ΡΡΡΠ½ΠΎΡΡΡ: ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.
<div x-data> ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ </div>
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° x-data
β ΡΡΠΎ ΡΠ° ΡΠ°ΠΌΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Alpine Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π² Π΄Π°Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ. ΠΡΡ, ΡΡΠΎ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ β ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
Π Alpine Π²ΡΠ΅Π³ΠΎ 14 Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° x-
. ΠΡΠ½ΠΎΠ²Π½Π°Ρ x-data
Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½ΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠ°Π·Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅.
<div x-data="{t: false}"> ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ </div>
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ t
ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ false
. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ js-ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎ Π² Π½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡ
Π²Π΅ΡΠ½ΡΡ).
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ onclick
ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠ΅Π½ΡΡΡ css-ΠΊΠ»Π°ΡΡ (Π°Π»Ρ-toggle).
<div x-data="{t: false}"> <div x-on:click="t = !t" x-bind:class="{ 't-red': t }">Toggle class click</div> </div>
Toggle class click
Π x-data
ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° x-on:click
ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ onclick
, Π³Π΄Π΅ Π² ΠΊΠ°Π²ΡΡΠΊΠ°Ρ
ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ js-ΠΊΠΎΠ΄ β ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ-Π±Ρ ΡΡΠΎ ΠΎΠ±ΡΡΠ½Π°Ρ js-ΡΡΠ½ΠΊΡΠΈΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ t
.
ΠΠ°Π»ΡΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ x-bind
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Π°ΡΡΠΈΠ±ΡΡ ΡΡΠ³Π° (Π·Π΄Π΅ΡΡ ΡΡΠΎ class) Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ css-ΠΊΠ»Π°ΡΡ t-red
Π΄ΠΎΠ±Π°Π²ΠΈΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ, Π΅ΡΠ»ΠΈ t
Π±ΡΠ΄Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎ (true).
ΠΡ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅, ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ t
, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π»ΠΈΡΠ΅Ρ Π½Π° bind-ΡΠ²ΡΠ·ΠΊΡ ΠΈ css-ΠΊΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ. ΠΡΠΎΡΠΎΠΉ ΠΊΠ»ΠΈΠΊ ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ t
ΠΈ ΠΊΠ»Π°ΡΡ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ.
ΠΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΡΠΌΠΈΡΡ Π΅ΡΡ ΠΏΡΠΎΡΠ΅:
<div x-data="{t: false}"> <div @click="t = !t" :class="{ 't-red': t }">Toogle class click</div> </div>
Π’ΠΎ Π΅ΡΡΡ @
Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° x-on:
, Π° :
Π½Π° x-bind:
.
ΠΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π±Π»ΠΎΠΊ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
<div x-data="{t: false}" @click="t = !t" :class="{'t-red': t}">Toogle class click</div>
ΠΠΎΡ ΠΎΠΆΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ Π°Π»Ρ-hover:
<div x-data="{t: false}"> <div @mouseover="t = true" @mouseout="t = false" :class="{'t-red': t}">Toogle class hover</div> </div>
Toogle class hover
ΠΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΡΠΎ Ρ ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Π² jQuery: ΠΏΠΎΠΌΠ΅Π½ΡΡΡ css-ΠΊΠ»Π°ΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠΎΠ±ΡΡΠΈΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΡ ΠΏΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΡΠΎΡ ΠΌΠ½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½ΡΠ°Π²ΠΈΡΡΡ:
<div x-data="{ open: false }"> <button @click="open = true">Open</button> <div x-show="open" @click.away="open = false" x-cloak> Content </div> </div>
Content
ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ dropdown, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ Π±Π»ΠΎΠΊ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°ΡΡΡ Berry CSS, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ½ΡΡΠ½Ρ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ open
, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ
ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° (ΡΠΊΡΡΡ/ΠΎΡΠΊΡΡΡ). Π£ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° x-show
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ js-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΡΠΎ false, ΡΠΎ x-show
ΡΠΊΡΠΎΠ΅Ρ Π±Π»ΠΎΠΊ ΡΠ΅ΡΠ΅Π· display: none
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ»ΠΈΠΊΠ½ΡΠ² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π±Π»ΠΎΠΊ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ open
.
Π£ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π΅ΡΡΡ Π΅ΡΡ ΠΎΠ΄Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° @click.away
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠ»ΠΈΠΊ, Π½ΠΎ Π²Π½Π΅ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈΠ»ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΡΠ°ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ open
ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ false
ΠΈ Π±Π»ΠΎΠΊ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° x-cloak
, Π° ΡΠΎΡΠ½Π΅Π΅ ΡΡΠΎ Π°ΡΡΠΈΠ±ΡΡ ΡΡΠ³Π°, ΠΎΡΠΎΠ±Π΅Π½Π½Π°Ρ. ΠΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡΡΠ΅Π·Π½ΡΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Alpine Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½. Π‘ΠΌΡΡΠ» Π² ΡΠΎΠΌ, ΡΡΠΎ js-ΡΠ°ΠΉΠ» Alpine ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π°ΡΠ½ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π° Π·Π½Π°ΡΠΈΡ Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΡΡΡΡ β Π±ΡΠ΄ΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ. Π ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Alpine ΠΎΠ½ΠΈ ΡΠΆΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΡΡΡΡ ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ. ΠΠΎΡ ΡΡΠ° Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΠΌΡ Β«ΠΌΠ΅Π»ΡΠΊΠ°Π½ΠΈΡΒ». ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
Π±Π»ΠΎΠΊΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ x-cloak
, Π° Π² css-ΡΡΠΈΠ»ΡΡ
ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ:
<style> [x-cloak] {display: none;} </style>
ΠΠΎΠΊΠ° Alpine Π½Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π°, Π±Π»ΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π΅ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ.
ΠΡΠΈΠΌΠ΅Ρ Ρ dropdown ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π΄Π»Ρ ΠΌΠ΅Π½Ρ, ΠΈ Π΄Π»Ρ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ ΠΎΠΊΠΎΠ½. ΠΡ ΠΏΠΎ ΡΡΡΠΈ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½ΠΈ ΡΡΡΠΎΡΠΊΠΈ js-ΠΊΠΎΠ΄Π°, Π° ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΡΡΡΡΠ°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠΎ Π½Π΅ ΡΡΠ°Π²Π½ΠΈΡΡΡ Π½ΠΈ Ρ jQuery, Π½ΠΈ Ρ Π½Π°ΡΠΈΠ²Π½ΡΠΌ JS.
ΠΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΡΠ°Π±Ρ.
<div x-data="{ tab: 'foo' }"> <button :class="{ 'bg-blue': tab === 'foo' }" @click="tab = 'foo'">Foo</button> <button :class="{ 'bg-blue': tab === 'bar' }" @click="tab = 'bar'">Bar</button> <div> <div x-show="tab === 'foo'">ΠΠΊΠ»Π°Π΄ΠΊΠ° Foo</div> <div x-show="tab === 'bar'" x-cloak>ΠΠΊΠ»Π°Π΄ΠΊΠ° Bar</div> </div> </div>
ΠΠΊΠ»Π°Π΄ΠΊΠ° Foo
ΠΠΊΠ»Π°Π΄ΠΊΠ° Bar
ΠΡΠ»ΠΈ Π²Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π΄Π΅Π»Π°Π»ΠΈ ΡΠ²ΠΎΠΈ ΡΠ°Π±Ρ, ΡΠΎ ΠΏΠΎΠΉΠΌΡΡΠ΅ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΌ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄. ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ…
Π§ΡΠΎ Π² ΠΈΡΠΎΠ³Π΅? ΠΠ»Ρ ΠΌΠ΅Π½Ρ Alpine.js β Π½Π°ΡΡΠΎΡΡΠ°Ρ Π½Π°Ρ ΠΎΠ΄ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ js-ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π² html-ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Alpine Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ β ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° ΠΎΠΏΡΡΠ½ΡΡ js-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠΎ ΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ Π²Π΅Π±ΠΌΠ°ΡΡΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Alpine.js ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ Π»ΡΠ³ΠΊΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° jQuery.
Π Π°Π±ΠΎΡΠ° Ρ Ajax Π² Alpine.js
ΠΠ΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»Ρ Π΄Π»Ρ Albireo
Π€ΡΠ½ΠΊΡΠΈΡ jQuery .closest() ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠΈΡΡΠΎΠΌΡ JavaScript β clubmate.fi
Π€ΡΠ½ΠΊΡΠΈΡ jQuery .closest() ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠΈΡΡΠΎΠΌΡ JavaScript ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ jQuery
.closest()
ΠΈ Π΄Π²ΡΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°ΠΌ JavaScript. Π€ΡΠ½ΠΊΡΠΈΡ jQuery .closest()
Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Π°! ΠΠΎΡ ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ:
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π½Π°Π±ΠΎΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡ ΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² Π² Π΄Π΅ΡΠ΅Π²Π΅ DOM.
ΠΠΎ ΡΡΡΠΈ, Ρ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΅ΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΈ:
- ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° β Π½Π°ΡΠ½ΠΈΡΠ΅ ΠΎΡΡΡΠ΄Π° ΠΈ ΠΏΡΠΎΠΉΠ΄ΠΈΡΠ΅ DOM Π²Π²Π΅ΡΡ .
- ΠΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° β ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΎΠ΄ ΠΏΡΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π² ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ.
ΠΠΎΡ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
<Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ> <ΡΠ»>ΡΠ»Π΅ΠΌΠ΅Π½Ρ1 ΡΠ»Π΅ΠΌΠ΅Π½Ρ2 ΡΠ»Π΅ΠΌΠ΅Π½Ρ 3 ΡΠ»Π΅ΠΌΠ΅Π½Ρ4 ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ
nav
, Π½ΠΎ Π²Π°ΡΠ° Β«ΠΎΡΠΏΡΠ°Π²Π½Π°Ρ ΡΠΎΡΠΊΠ°Β» β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²li
(ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅). Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ±Π»Π°Π·Π½ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:$('.nav-item-1') .parent() // ΡΠ». .parent() // Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ .parent() // ΡΠ°Π·Π΄Π΅Π» .css('background-color', 'red')ΠΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΏΠ»ΠΎΡ ΠΎ, Π½ΠΎ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅? ΠΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΡΠ΄Π° ΠΎΠ±Π΅ΡΡΠΊΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄. Closest ΡΠΎΠ·Π΄Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π²Π΅ΡΠ΅ΠΉ:
$('.nav-item-1').closest('nav').css('background-color', 'red')ΠΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΊΡ
$('.nav-item-1 ')
ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ. closest('nav')
, ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· DOM Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΡΠ΅Π»ΠΈ ΠΈ Π½Π΅ Π²Π΅ΡΠ½Π΅Ρ Π΅Π΅.Π§ΠΈΡΡΡΠΉ JavaScript
NearestByClass
functionΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π²Π°Π½ΠΈΠ»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ JavaScript, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡ. ΠΠ· Π½Π΅Π³ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ:
var NearestByClass = ΡΡΠ½ΠΊΡΠΈΡ (ΡΠ»Ρ, ΠΊΠ»Π°Π·Π·) { // ΠΠ±Ρ ΠΎΠ΄ΠΈΠΌ DOM Π²Π²Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° while Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ (el.className != clazz) { // Π£Π²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΠΈΠΊΠ» Π΄ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ·Π»Π° ΡΠ» = ΡΠ».ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ·Π΅Π» Π΅ΡΠ»ΠΈ (!ΡΠ»Ρ) { Π²Π΅ΡΠ½ΡΡΡ Π½ΠΎΠ»Ρ } } // Π ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΈΠΊΠ» while ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΈ `el` ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ // ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»Π°ΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²Π°ΠΌΠΈ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ // `ΠΊΠ»Π°Π·` Π²Π΅ΡΠ½ΡΡΡ ΡΠ»Ρ }ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
document.onclick = function (e) { if (closestByClass(e.target, 'ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠ»Π°ΡΡ')) { // Π‘Π΄Π΅Π»Π°ΠΉ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ } Π΅ΡΠ΅ { // ΠΠ΅Π»Π°Π΅ΠΌ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅ } }ΠΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΈ Π²ΡΠ΅ ΡΠ°ΠΊΠΎΠ΅, Π½ΠΎ ΠΎΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΎΠ², Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° ID, ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅
className
Π½Π°id
. Π₯ΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ½ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½.Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠΈΡΡΡΠΉ JavaScript Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ
ΠΠΎΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡΠΎΡΠ΅:
var Nearest = function (el, fn) { Π²Π΅ΡΠ½ΡΡΡ el && (fn(el) ? el : Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ(el.parentNode, fn)) }ΠΠ»ΠΈ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΡΠΎ ΡΡΡΠ΅Π»ΠΎΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
var Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ = (el, fn) => el && (fn(el) ? el : Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ(el.parentNode, fn))ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠ»ΠΎΡΠ½ΠΎ . ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ»Π°ΡΡ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠΌΡ ΡΠ΅Π³Π°:
var srcEl = document.getElementsByClassName('nav__item-3') // ΠΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ `.nav` ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΡΠΆΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ var nav = Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ (srcEl [0], ΡΡΠ½ΠΊΡΠΈΡ (el) { // ΠΡΠ΅Π»Π΅ΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠ΅Π»ΡΡ, Π·Π΄Π΅ΡΡ // ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° `.nav` Π²Π΅ΡΠ½ΡΡΡ el. className === 'nav' }) // Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ `nav` ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ `.nav` console.log(Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ) // ΠΠ΄Π΅ΡΡ ΡΠ΅Π»Ρ ΡΠΊΠ°Π·Π°Π½Π° ΠΊΠ°ΠΊ id `#nav-id` var nav = Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ (srcEl [0], el => el.id === 'nav-id') // ΠΠ΄Π΅ΡΡ ΡΠ΅Π³ `Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
nav
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ°, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅Π³Π°. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΠ°ΡΠ°Ρ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ DOM, Ρ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ! ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π²Π΅Π»ΠΈΠΊΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° SO.
ΠΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ.
ΠΠ»ΠΈΠΆΠ°ΠΉΡΠ°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Pure JavaScript
JavaScript Β· Bootstrap v5.0
ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅
ΠΠ»Π°Π³ΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅
js/dist/*.js
), ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΡΠ°Π·Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡbootstrap.js
ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½Π½ΡΠΉbootstrap. min.js
(Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΎΠ±Π°).ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊ (Webpack, Rollupβ¦), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ
/js/dist/*.js
, ΠΊΠΎΡΠΎΡΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ UMD.ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Bootstrap Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ Bootstrap, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΊ
ESM
(bootstrap.esm.js
ΠΈbootstrap.esm.min.js
), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Bootstrap Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π²Π°ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈ ΡΠ΅Π»Π΅Π²ΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ.<ΡΠΈΠΏ ΡΡΠ΅Π½Π°ΡΠΈΡ = "ΠΌΠΎΠ΄ΡΠ»Ρ"> ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {Toast} ΠΈΠ· 'bootstrap.esm.min.js' Array.from(document.querySelectorAll('.toast')) .forEach(toastNode => Π½ΠΎΠ²ΡΠΉ Toast(toastNode))ΠΠ΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ
ΠΠ·-Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Dropdown, Tooltip ΠΈ Popover, Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ΅Π³Π΅
Ρ ΡΠΈΠΏΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ
,ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Popper.ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΡΠΌ.Π·Π΄Π΅ΡΡ.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ CSS Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².ΠΡΠ»ΠΈ Π²Ρ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ,ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΡΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ΡΡ ΡΠΏΠΈΡΠΊΠΈ,Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Popper.
ΠΡΠ΅ Π΅ΡΠ΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ jQuery?ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ!
Bootstrap 5 ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π· jQuery,Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ jQuery.ΠΡΠ»ΠΈ Bootstrap ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ
jQuery
Π² ΠΎΠΊΠ½Π΅ΠΎΠ±ΡΠ΅ΠΊΡΠ΄ΠΎΠ±Π°Π²ΠΈΡ Π²ΡΠ΅ Π½Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² jQuery;ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ,ΡΡΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ
$('[data-bs-toggle="tooltip"]').tooltip()
,ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ.Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π½Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².ΠΡΡΠΈΠ±ΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΠΎΡΡΠΈ Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Bootstrap ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· HTML Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (Π½Π°Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ JavaScript).Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ,ΡΡΠΎΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΠΈ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ).
Π‘Π΅Π»Π΅ΠΊΡΠΎΡΡ
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² DOM ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ
querySelector
ΠΈquerySelectorAll
ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ,ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ.ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ,Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:roll:Example
,ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΈΡ .Events
Bootstrap ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π΄Π»Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ,ΠΎΠ½ΠΈ Π±ΡΠ²Π°ΡΡ Π² ΡΠΎΡΠΌΠ΅ ΠΈΠ½ΡΠΈΠ½ΠΈΡΠΈΠ²Π° ΠΈ ΠΏΡΠΈΡΠ°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ,Π³Π΄Π΅ ΠΈΠ½ΡΠΈΠ½ΠΈΡΠΈΠ²(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΏΠΎΠΊΠ°Π·Π°ΡΡ
)Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΎΠ±ΡΡΠΈΡ,Π° Π΅Π³ΠΎ ΡΠΎΡΠΌΠ° ΠΏΡΠΈΡΠ°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,ΠΏΠΎΠΊΠ°Π·Π°Π½
)Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.ΠΡΠ΅ ΠΈΠ½ΡΠΈΠ½ΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ
preventDefault()
.ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΠΎ Π΅Π³ΠΎ Π½Π°ΡΠ°Π»Π°.ΠΠΎΠ·Π²ΡΠ°Ρ false ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²Π΅ΡpreventDefault()
.ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ myModal=document.getElementById('myModal') myModal.addEventListener('show.bs.modal',ΡΡΠ½ΠΊΡΠΈΡ(ΡΠΎΠ±ΡΡΠΈΠ΅){Π΅ΡΠ»ΠΈ(!Π΄Π°Π½Π½ΡΠ΅){return event.preventDefault()}})Π‘ΠΎΠ±ΡΡΠΈΡ jQuery
Bootstrap ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ jQuery,Π΅ΡΠ»ΠΈ
jQuery
ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ΠΎΠΊΠ½Π°
ΠΈ Π½Π΅Ρ Π°ΡΡΠΈΠ±ΡΡΠ°data-bs-no-jquery
,ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ.ΠΡΠ»ΠΈ jQuery Π½Π°ΠΉΠ΄Π΅Π½,Bootstrap Π±ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ jQuery.ΠΠΎΡΡΠΎΠΌΡ,Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ Bootstrap,Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ jQuery(
.on
,.one
)Π²ΠΌΠ΅ΡΡΠΎaddEventListener
.$('#myTab a').on('show.bs.tab',ΡΡΠ½ΠΊΡΠΈΡ(){})Programmatic API
ΠΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠΏΡΠΈΠΉ ΠΈΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ(ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ):
var myModalEl=document.getElementById('myModal') var modal=new bootstrap.Modal(myModalEl) var modal=new bootstrap.Modal(myModalEl,{ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°:false})ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°,ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄
getInstance
.Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°,ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:bootstrap.Popover.getInstance(myPopoverEl)
.Π‘Π΅Π»Π΅ΠΊΡΠΎΡΡ CSS Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°Ρ
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»Π΅ΠΊΡΠΎΡ CSS Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° DOM Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
querySelector
,ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.var modal=Π½ΠΎΠ²ΡΠΉ bootstrap.Modal('#myModal') var dropdown=Π½ΠΎΠ²ΡΠΉ bootstrap.Dropdown('[data-bs-toggle="dropdown"]')ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ
ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ API ΡΠ²Π»ΡΡΡΡΡΠ°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°,Π½ΠΎΠ΄ΠΎ Π΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°,Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠ±ΡΡΠΈΠ΅.
var myCollapseEl=document.getElementById('myCollapse') myCollapseEl.addEventListener('show.bs.collapse',ΡΡΠ½ΠΊΡΠΈΡ(ΡΠΎΠ±ΡΡΠΈΠ΅){})ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ,Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π°ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½.
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ myCarouselEl=document.getElementById('myCarousel') var carousel=bootstrap.Carousel.getInstance(myCarouselEl) myCarouselEl.addEventListener('slid. bs.carousel',ΡΡΠ½ΠΊΡΠΈΡ(ΡΠΎΠ±ΡΡΠΈΠ΅){carousel.to('2')}) carousel.to('1') carousel.to('2')ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°,ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡ
Constructor ΠΏΠ»Π°Π³ΠΈΠ½Π°.ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
:bootstrap.Modal.Default.keyboard=Π»ΠΎΠΆΡΠΠ΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°(ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ jQuery)
ΠΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Bootstrap Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.Π ΡΡΠΈΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½.ΠΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ,Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡΡ
.noConflict
Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°,Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.var bootstrapButton=$.fn.button.noConflict() $.fn.bootstrapBtn=bootstrapButtonΠΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠΉ
ΠΠΎΡΡΡΠΏ ΠΊ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° Bootstrap ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ
VERSION
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΠ»Π°Π³ΠΈΠ½Π°.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ:bootstrap.Tooltip.VERSIONΠΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΊΠ°ΡΠΎΠ² ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ JavaScript
ΠΠ»Π°Π³ΠΈΠ½Ρ Bootstrap Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΈΠ·ΡΡΠ½ΠΎ ΠΎΡΡΡΡΠΏΠ°ΡΡ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ JavaScript.ΠΡΠ»ΠΈ Π²Π°Ρ Π²ΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠΏΡΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅,ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
,ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ(ΠΈ ΠΊΠ°ΠΊ ΡΠ½ΠΎΠ²Π° Π²ΠΊΠ»ΡΡΠΈΡΡ JavaScript)ΡΠ²ΠΎΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈ/ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΠ°ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ.
Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Bootstrap ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ JavaScript,ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Prototype ΠΈΠ»ΠΈ jQuery UI.ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° 9Π°ΡΠΈΡ-[\w-]*$/i Π²Π°Ρ DefaultAllowlist={