Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«HTML 5, CSS 3 ΠΈ Web 2.0. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° соврСмСнных Web-сайтов». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 55

Автор Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”Ρ€ΠΎΠ½ΠΎΠ²

МногиС ΠΈΠ· Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… событий ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСрывания ΠΈΡ… всплытия Π½Π° любом ΡƒΡ€ΠΎΠ²Π½Π΅. Π­Ρ‚ΠΎ рСализуСтся особым ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° EventObject, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ свСдСния ΠΎ событии. ΠœΡ‹ рассмотрим Π΅Π³ΠΎ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

НСкоторыС события, возникшиС Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтах Web-страницы, Web-ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ сам, рСализуя Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ дСйствиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’Π°ΠΊ, дСйствиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для события click Π² гипСрссылкС β€” ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Ρ†Π΅Π»Π΅Π²ΡƒΡŽ Web-страницу, Π° для события focus β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ гипСрссылкой фокуса Π²Π²ΠΎΠ΄Π°.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, привязанный ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Web-ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ выполняСт дСйствиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, выполняСтся ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ дСйствиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ. Π­Ρ‚ΠΎ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ дСйствия ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Π½Π΅ для всСх событий) β€” Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ особого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° всС Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° EventObject. ΠœΡ‹ рассмотрим Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ скоро.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСдСний ΠΎ событии. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ EventObject

ΠœΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события Ρ…Ρ€Π°Π½ΠΈΡ‚ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° EventObject, содСрТащий свСдСния ΠΎ событии ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ для нас Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹.

ΠœΠ΅Ρ‚ΠΎΠ΄ getCharCode Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ символа, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode Π² Π²ΠΈΠ΄Π΅ числа. Он Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠšΠΎΠ΄Ρ‹ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… символов ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π’Π°Π±Π»ΠΈΡ†Π° символов, поставляСмой Π² составС Windows.

ΠœΠ΅Ρ‚ΠΎΠ΄ getKey Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ клавиши Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode Π² Π²ΠΈΠ΄Π΅ числа. Он Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠšΠΎΠ΄Ρ‹ клавиш ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Web-страницС http://msdn.microsoft.com/en-us/library/ms927178.aspx.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ getPageX ΠΈ getPageY Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚, соотвСтствСнно, Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ курсора ΠΌΡ‹ΡˆΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Web-страницы Π² Π²ΠΈΠ΄Π΅ чисСл Π² пиксСлах. Они Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠœΠ΅Ρ‚ΠΎΠ΄ preventDefault отмСняСт дСйствия ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для события. Он Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния.

ΠœΠ΅Ρ‚ΠΎΠ΄ stopPropagation отмСняСт дальнСйшСС всплытиС события. Он Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния.

ΠœΠ΅Ρ‚ΠΎΠ΄ stopEvent отмСняСт дСйствия ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для события ΠΈ отмСняСт Π΅Π³ΠΎ дальнСйшСС всплытиС. ЀактичСски ΠΎΠ½ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ дСйствиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² preventDefault ΠΈ stopPropagation. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ нашСго Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Web-сцСнария, написанного Π² Π³Π»Π°Π²Π΅ 14, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС 15.7, ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ получится.

Листинг 15.7

var ceLinks = Ext.select("UL[id=navbar] LI");

ceLinks.on("mouseover", function(e, t) { Ext.get(this). addClass("hovered"); e.stopEvent();});

ceLinks.on("mouseout", function(e, t) { Ext.get(this). removeClass("hovered"); e.stopEvent();});

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ CompositeElementLite

ВСрнСмся Π² Π½Π°Ρ‡Π°Π»ΠΎ этой Π³Π»Π°Π²Ρ‹ ΠΈ вспомним, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ доступ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Π½Π°ΠΌ элСмСнту Web-страницы.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту Web-страницы:

var elCMain = Ext.get("cmain");

Или сразу ΠΊ нСскольким:

var clContainers = Ext.select("DIV");

ΠœΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ select ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ext Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CompositeElementLite β€” ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ экзСмпляров ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Element, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… всС подходящиС ΠΏΠΎΠ΄ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ сСлСктор CSS элСмСнты Web-страницы. Настала ΠΏΠΎΡ€Π° Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ CompositeElementLite ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ CompositeElementLite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Element, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для управлСния привязкой стилСвых классов, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ

Ρ‚Π΅Π³Π° ΠΈ стиля, привязкой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий ΠΈ Ρ‚. ΠΏ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ стилСвыС классы ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий сразу ΠΊ нСскольким элСмСнтам Web-страницы. (БобствСнно, ΠΌΡ‹ это ΡƒΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ.)

ΠœΠ΅Ρ‚ΠΎΠ΄ getCount Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число элСмСнтов Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Он Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

var i = clContainers.getCount();

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i окаТСтся число элСмСнтов Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

clContainers β€” 5.

ΠœΠ΅Ρ‚ΠΎΠ΄ item Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ индСксом Π² Π²ΠΈΠ΄Π΅ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Element:

<экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CompositeElementLite>.item(<индСкс>)

Как Π²ΠΈΠ΄ΠΈΠΌ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” индСкс Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ числа.

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

var elDiv = clContainers.item(i β€” 1);

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ elDiv окаТСтся послСдний элСмСнт ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ clContainers. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ элСмСнты ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈ элСмСнты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ массива, Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ, начиная с нуля, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ item Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ мСньшСС, Ρ‡Π΅ΠΌ число элСмСнтов Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

А Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ всС элСмСнты ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ clContainers ΠΈ выполняСм Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ дСйствия:

for(var k = 0; k < i; k++) {

var elDiv = clContainers.item(k);

// Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ

}

ΠœΠ΅Ρ‚ΠΎΠ΄ indexOf Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ числа:

<экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CompositeElementLite>.indexOf(<элСмСнт>)

ЕдинствСнным ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ пСрСдаСтся искомый элСмСнт. Им ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строка с ΠΈΠΌΠ΅Π½Π΅ΠΌ элСмСнта, экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Element ΠΈΠ»ΠΈ HTMLElement.

Если ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ отсутствуСт, ΠΌΠ΅Ρ‚ΠΎΠ΄ indexOf Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ –1.

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

var ind = clContainers.indexOf("cnavbar");

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ind окаТСтся индСкс ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° cnavbar Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ clContainers β€” 1.

ΠœΠ΅Ρ‚ΠΎΠ΄ each Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

<экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CompositeElementLite>.each(<функция>)

ЕдинствСнным ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ пСрСдаСтся функция, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Она Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

β€” ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Element;

β€” ΡΠ°ΠΌΠ° эта коллСкция Π² Π²ΠΈΠ΄Π΅ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CompositeElementLite;

β€” ΠΈΠ½Π΄Π΅ΠΊΡ элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ числа.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, элСмСнт ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ доступСн Π² Ρ‚Π΅Π»Π΅ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ this.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΠ· листинга 15.8 ΠΌΡ‹ привязываСм ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ, входящСму Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ clContainers, стилСвой класс hovered.

Листинг 15.8

clContainers.each(function(el, cl, ind)

{

el.addClass("hovered");

}

);

Листинг 15.9

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Web-сцСнария ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ листинг 15.9.

clContainers.each(function(el, cl, ind)

{

this.addClass("hovered");

}

);

Π•Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

clContainers.addClass("hovered");

На этом ΠΌΡ‹ ΠΏΠΎΠΊΠ° Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Ext Core. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… ΠΌΡ‹ ΠΊ Π½Π΅ΠΉ Π΅Ρ‰Π΅ вСрнСмся ΠΈ рассмотрим Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΅Π΅ возмоТности.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Web-обозрСватСля

Как Π²ΠΈΠ΄ΠΈΠΌ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ext Core позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, написав нСсколько строчСк JavaScript-ΠΊΠΎΠ΄Π°. Если Π±Ρ‹ ΠΌΡ‹ пользовались для этого ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Web-обозрСватСля, объСм ΠΊΠΎΠ΄Π° вырос Π±Ρ‹ Π½Π° порядок β€” Π½Π΅ мСньшС.

Но с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ext Core ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ всС. НСкоторыС Π²Π΅Ρ‰ΠΈ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Web-обозрСватСля.

Один ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β€” HTMLDocument, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Web-страницу. ЕдинствСнный Π΅Π³ΠΎ экзСмпляр, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Web-страницу, доступСн Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ document. Π­Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ.

Из всСх свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° HTMLDocument интСрСс для нас ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅. Π•Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ события Π½Π°ΠΌ вряд Π»ΠΈ пригодятся.

Бвойство title Ρ…Ρ€Π°Π½ΠΈΡ‚ тСкст Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Web-страницы (содСрТимоС Ρ‚Π΅Π³Π° <TITLE>) Π² Π²ΠΈΠ΄Π΅ строки. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΈΠ· Π³Π»Π°Π²Ρ‹ 1, выводится Π² строкС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Web-обозрСватСля, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° данная Web-страница.

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

var sTitle = document.title;

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sTitle окаТСтся строка с тСкстом Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Web-страницы. А Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ для Web-страницы Π½ΠΎΠ²Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: document.title = "Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ";

Бвойство location Ρ…Ρ€Π°Π½ΠΈΡ‚ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Location, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-адрСс Web-страницы. Нам Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свойство href, хранящСС ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-адрСс Web-страницы Π² Π²ΠΈΠ΄Π΅ строки:

var sHREF = document.location.href;

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sHREF окаТСтся строка с ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-адрСсом Web-страницы. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

document.location.href = "http://www.w3.org";

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° Web-страницу http://www.w3.org. Π”Π°-Π΄Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства href ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Location ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Web-ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Web-страницу, присвоив этому свойству Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-адрСс!

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Window прСдставляСт ΠΎΠΊΠ½ΠΎ Web-обозрСватСля. ЕдинствСнный экзСмпляр этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ Web-обозрСватСля, хранится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ window. Π­Ρ‚ΠΎ ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ Π·Π½Π°Π΅ΠΌ.

Рассмотрим ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ для нас ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ события ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Window.

ΠœΠ΅Ρ‚ΠΎΠ΄ alert Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран ΠΎΠΊΠ½ΠΎ-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ тСкстом ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ОK. Π’Π°ΠΊΠΈΠ΅ ΠΎΠΊΠ½Π°-прСдупрСТдСния выводят ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅Π»ΡŽ сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ:

window.alert(<тСкст, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π² ΠΎΠΊΠ½Π΅-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ>)

ЕдинствСнный ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” строка с тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ Π² ΠΎΠΊΠ½Π΅-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ:

window.alert("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Window!");

ΠœΠ΅Ρ‚ΠΎΠ΄ confirm Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран ΠΎΠΊΠ½ΠΎ-ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ тСкстом ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ОK ΠΈ ΠžΡ‚ΠΌΠ΅Π½Π°. Π’Π°ΠΊΠΈΠ΅ ΠΎΠΊΠ½Π°-прСдупрСТдСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ посСтитСля ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρƒ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ дСйствия: