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

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

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

var sSelector = "UL: nth(" + iIndex + ")";

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ:

elNavbar.child(sSelector). setDisplayed(true);

}

На этом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ showInnerList Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ вставим Π² ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая пСрСдаСтся Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ onReady ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ext, Ρ‚Π°ΠΊΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

showInnerList(outerIndex);

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ showInnerList, пСрСдавая Π΅ΠΉ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ outerIndex. Π­Ρ‚Π° пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трСбуСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Web-страницу index.htm ΠΈ Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ Π΅Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (Π² Ρ‚Π΅Π³Π΅ <HEAD>) вставим Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

<SCRIPT>

outerIndex = 1;

</SCRIPT>

ΠœΡ‹ присваиваСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ outerIndex число 1 β€” Π½ΠΎΠΌΠ΅Ρ€ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Web-страницы index.htm (это список Ρ€Π°Π·Π΄Π΅Π»Π° "HTML"). ΠšΠΎΠ³Π΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Web-сцСнарии, хранящиСся Π² Ρ„Π°ΠΉΠ»Π΅ main.js, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ showInnerList, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΠ»ΠΈ трСбования ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Web 2.0, ΠΏΡ€Π΅Π΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Web-страницы ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Π΅Π΅ содСрТимого. Но Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ, Ρ‚. ΠΊ. этот Web-сцСнарий Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… Web-страниц нашСго Web-сайта Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π΄ΠΈ Π½Π΅Π³ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Web-страницы "ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ" Ρ„Π°ΠΉΠ» Web-сцСнария слишком Ρ€Π°ΡΡ‚ΠΎΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ Web-сцСнарий ΠΌΡ‹ вставим Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Web-страниц, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π³ΠΈ HTML. И Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ исправлСнныС Web-страницы.

Π’ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Web-страницы css_index.htm ΠΈ Web-страниц, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ стиля CSS, ΠΌΡ‹ вставим Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

<SCRIPT>

outerIndex = 2;

</SCRIPT>

Он ΡƒΠΊΠ°ΠΆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Web-страниц Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ счСту Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список β€” Ρ€Π°Π·Π΄Π΅Π»Π° "CSS".

Π’ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Web-страницы samples_index.htm ΠΈ Web-страниц, содСрТащих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΌΡ‹ вставим код… сами Π΄ΠΎΠ³Π°Π΄Π°ΠΉΡ‚Π΅ΡΡŒ, ΠΊΠ°ΠΊΠΎΠΉ. (Подсказка: ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список.)

А Π²ΠΎΡ‚ Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Web-страницы about.htm вставим Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

<SCRIPT>

outerIndex = null;

</SCRIPT>

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ "внСшнСго" списка Π½Π΅ содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ β€” слСдуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ всС исправлСнныС Web-страницы ΠΈ ΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΡ… Π² Π΄Π΅Π»Π΅. НСплохо ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, ΠΏΡ€Π°Π²Π΄Π°?

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Π° полосы Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Web-страницС

Π§Ρ‚ΠΎ ΠΆ, скрытиС ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… полосу Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Π² "содруТСствС" с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Ext Core рСализуСтся вСсьма просто. Но Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ полосой Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°.

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ сСйчас считаСтся ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ полосы Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Web-страницы. Π’Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ Π΅Π³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°ΠΌΠΊΠΎΠΉ ΠΈΠ»ΠΈ "инвСрсными" Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ (Π² качСствС Ρ†Π²Π΅Ρ‚Π° тСкста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°, Π° Π² качСствС Ρ†Π²Π΅Ρ‚Π° Ρ„ΠΎΠ½Π° β€” Ρ†Π²Π΅Ρ‚ тСкста). Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈ ΠΌΡ‹ сдСлаСм Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.

β€” ΠŸΡƒΠ½ΠΊΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ "инвСрсными" Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ.

β€” ΠŸΡƒΠ½ΠΊΡ‚ "внСшнСго" списка, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ "инвСрсными" Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ.

β€” ΠŸΡƒΠ½ΠΊΡ‚ "внСшнСго" списка, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список, ΠΌΡ‹ Π½ΠΈΠΊΠ°ΠΊ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ β€” Π΅Π³ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список.

Π—Π°ΠΎΠ΄Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ объСдиним установку выдСлСния Π½Π° ΠΏΡƒΠ½ΠΊΡ‚ полосы Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ со скрытиСм ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ стилСй main.css ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π΅ стили ΠΈΠ· листинга 16.7.

Листинг 16.7

selected,

#navbar.selected A: link,

#navbar.selected A: focus,

#navbar.selected A: hover,

#navbar.selected A: active,

#navbar.selected A: visited { color: #F8F8F8; background-color: #576C8C }

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

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ стилСй. И ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» Web-сцСнария main.js. Π£Π΄Π°Π»ΠΈΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ showInnerList, созданноС Ρ€Π°Π½Π΅Π΅, ΠΈ вставим Π½Π° Π΅Π³ΠΎ мСсто объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² листингС 16.8.

Листинг 16.8

function selectItem(iIndex, sText) { var elNavbar = Ext.get("navbar"); elNavbar.select("LI"). removeClass("selected"); var ceInnerLists = elNavbar.select("UL"); ceInnerLists.setDisplayed(false);

var sSelector = "> LI: nth(" + iIndex + ")"; var elOuterItem = elNavbar.child(sSelector); var elInnerList = elOuterItem.child("UL");

if (elInnerList) {

elInnerList.setDisplayed(true);

if (sText) {

sSelector = "LI: has(:nodeValue(" + sText + "))";

elOuterItem.child(sSelector). addClass("selected");

}

} else elOuterItem.addClass("selected");

}

Π­Ρ‚Π° функция с ΠΈΠΌΠ΅Π½Π΅ΠΌ selectItem Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько дСйствий:

β€” Π•сли ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΏΡƒΠ½ΠΊΡ‚Π° "внСшнСго" списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список, ΠΎΠ½Π° ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ список ΠΈ скроСт всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки.

β€” Π•сли ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΏΡƒΠ½ΠΊΡ‚Π° "внСшнСго" списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список, ΠΎΠ½Π° Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ "внСшнСго" списка ΠΈ, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, скроСт всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки.

β€” Π•сли Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ тСкст ΠΏΡƒΠ½ΠΊΡ‚Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΎΠ½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ этот ΠΏΡƒΠ½ΠΊΡ‚, сняв Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ со всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков. Если Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠΏΡƒΡ‰Π΅Π½, ΠΎΠ½Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Рассмотрим Π΅Π΅ ΠΊΠΎΠ΄ построчно.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ "внСшний" список, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ полосу Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ:

var elNavbar = Ext.get("navbar");

Π£Π±ΠΈΡ€Π°Π΅ΠΌ ΠΈΠ· привязки ΠΊΠΎ всСм ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ всСх списков, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… полосу Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, β€” ΠΈ "внСшнСго", ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… β€” стилСвой класс selected:

elNavbar.select("LI"). removeClass("selected");

Π’Π°ΠΊ ΠΌΡ‹ снимСм Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ со всСх ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² всСх списков. Π‘Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ всС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки:

var ceInnerLists = elNavbar.select("UL");

ceInnerLists.setDisplayed(false);

Π­Ρ‚ΠΈ Ρ‚Ρ€ΠΈ выраТСния ΠΏΠ΅Ρ€Π΅ΠΊΠΎΡ‡Π΅Π²Π°Π»ΠΈ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ showInnerList Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ сСлСктор CSS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΡƒΠ½ΠΊΡ‚ "внСшнСго" списка с ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ selectItem Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ этот ΠΏΡƒΠ½ΠΊΡ‚:

var sSelector = "> LI: nth(" + iIndex + ")";

var elOuterItem = elNavbar.child(sSelector);

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² этом ΠΏΡƒΠ½ΠΊΡ‚Π΅, разумССтся, Ссли ΠΎΠ½ Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ:

var elInnerList = elOuterItem.child("UL");

Если Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список Π΅ΡΡ‚ΡŒ, ΠΌΠ΅Ρ‚ΠΎΠ΄ child Π²Π΅Ρ€Π½Π΅Ρ‚ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Element, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° child Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ:

if (elInnerList) {

Если этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Ρ€Π½ΡƒΠ» экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Element, послСдний Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, ΠΈ условиС выполнится. Если ΠΆΠ΅ ΠΎΠ½ Π²Π΅Ρ€Π½ΡƒΠ» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null, ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² false, ΠΈ условиС Π½Π΅ выполнится.

Если Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список сущСствуСт, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ:

elInnerList.setDisplayed(true);

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π±Ρ‹Π» Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ selectItem ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” тСкст ΠΏΡƒΠ½ΠΊΡ‚Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ:

if (sText) {

Если ΠΎΠ½ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Π½, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ строку с сСлСктором CSS, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТит тСкст, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ этим самым Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ:

sSelector = "LI: has(:nodeValue(" + sText + "))";

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ сформированному Ρ€Π°Π½Π΅Π΅ сСлСктору, ΠΈ сразу ΠΆΠ΅ привязываСм ΠΊ Π½Π΅ΠΌΡƒ стилСвой класс selected:

elOuterItem.child(sSelector). addClass("selected");

}

Если ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅ ΠΏΡƒΠ½ΠΊΡ‚ "внСшнСго" списка с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Π½Π΅ содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, привязываСм ΠΊ этому ΠΏΡƒΠ½ΠΊΡ‚Ρƒ стилСвой класс selected:

} else elOuterItem.addClass("selected");

На этом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

Π’ Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ onReady ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ext, Ρ€Π°Π½Π΅Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ showInnerList. Π£Π΄Π°Π»ΠΈΠΌ Π΅Π³ΠΎ ΠΈ вмСсто Π½Π΅Π³ΠΎ вставим Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

selectItem(outerIndex, innerText);

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ selectItem, пСрСдавая Π΅ΠΉ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… outerIndex ΠΈ innerText. ΠŸΠ΅Ρ€Π²Π°Ρ пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трСбуСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ, Π° вторая β€” тСкст ΠΏΡƒΠ½ΠΊΡ‚Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Web-страницу index.htm, Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΊΠΎΠ΄, вставлСнный Ρ€Π°Π½Π΅Π΅ Π² Π΅Π΅ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<SCRIPT> outerIndex = 1; innerText = null;

</SCRIPT>

ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ innerText Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Web-сцСнариСв, хранящихся Π² Ρ„Π°ΠΉΠ»Π΅ main.js, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ selectItem, значСния ΠΎΠ±Π΅ΠΈΡ… этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ откроСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список, ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π΅Π³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Web-страницу t_audio.htm ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠΌ вставлСнный Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠ΄ Π² Π΅Π΅ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Ρ‚Π°ΠΊ:

<SCRIPT> outerIndex = 1; innerText = "AUDIO";

</SCRIPT>

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список ΠΈ Π² Π½Π΅ΠΌ Π²Ρ‹Π΄Π΅Π»Π΅Π½ ΠΏΡƒΠ½ΠΊΡ‚ "AUDIO".

Аналогично Π·Π°ΠΌΠ΅Π½ΠΈΠΌ вставлСнный Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠ΄ Π²ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Web-страницах нашСго Web-сайта ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΈΡ… Π² дСйствии.

Π‘ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ тСкста ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

На Web-страницах, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π³ΠΈ HTML ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ стиля CSS, ΠΌΡ‹ помСстили тСкст ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² примСнСния Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° стиля. Часто Π΅Π³ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΡΡ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΡΡ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΡŒΡŽ β€” Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Web-страницы Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ.