Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт select jquery: Π Π°Π±ΠΎΡ‚Π° с select option с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JQuery

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

Π’Π΅Π³ | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
3.0+1.0+4.0+1.0+1.0+1.0+1.0+

БпСцификация

HTML:3.24.015.0XHTML:1.01.1

ОписаниС

Π’Π΅Π³ <select> позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ элСмСнт интСрфСйса Π² Π²ΠΈΠ΄Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка, Π° Ρ‚Π°ΠΊΠΆΠ΅ список с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ мноТСствСнным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ зависит ΠΎΡ‚ использования Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° size Ρ‚Π΅Π³Π° <select>, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСт высоту списка. Π¨ΠΈΡ€ΠΈΠ½Π° списка опрСдСляСтся самым ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ тСкстом, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² Ρ‚Π΅Π³Π΅ <option>, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стилСй. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Π³Π° <option>, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ <select>. Если планируСтся ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ списка Π½Π° сСрвСр, Ρ‚ΠΎ трСбуСтся ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт <select> Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ списка ΠΈΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· скрипты.

Π§Π΅Π±ΡƒΡ€Π°ΡˆΠΊΠ°ΠšΡ€ΠΎΠΊΠΎΠ΄ΠΈΠ» Π“Π΅Π½Π°Π¨Π°ΠΏΠΎΠΊΠ»ΡΠΊΠšΡ€Ρ‹ΡΠ° ЛарисаВыбСритС Π³Π΅Ρ€ΠΎΡΠ§Π΅Π±ΡƒΡ€Π°ΡˆΠΊΠ°ΠšΡ€ΠΎΠΊΠΎΠ΄ΠΈΠ» Π“Π΅Π½Π°Π¨Π°ΠΏΠΎΠΊΠ»ΡΠΊΠšΡ€Ρ‹ΡΠ° Лариса
Бписок мноТСствСнного Π²Ρ‹Π±ΠΎΡ€Π°Π Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список

Бинтаксис

<select>
  <option>ΠŸΡƒΠ½ΠΊΡ‚ 1</option>
  <option>ΠŸΡƒΠ½ΠΊΡ‚ 2</option>
</select>

Атрибуты

accesskey
ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ списку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сочСтания клавиш.
autofocus
УстанавливаСт, Ρ‡Ρ‚ΠΎ список ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ фокус послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы.
disabled
Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ доступ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ элСмСнта.
form
БвязываСт список с Ρ„ΠΎΡ€ΠΌΠΎΠΉ.
multiple
ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ сразу нСсколько элСмСнтов списка.
name
Имя элСмСнта для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π° сСрвСр ΠΈΠ»ΠΈ обращСния Ρ‡Π΅Ρ€Π΅Π· скрипты.
required
Бписок обязатСлСн для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.
size
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… строк списка.
tabindex
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Tab

Π’Π°ΠΊΠΆΠ΅ для этого Ρ‚Π΅Π³Π° доступны ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ события.

Π—Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»Π΅Π½.

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

HTML5IECrOpSaFx

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Π’Π΅Π³ SELECT</title>
 </head>
 <body>  
 
  <form action="select1.php" method="post">
   <p><select size="3" multiple name="hero[]">
    <option disabled>Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ гСроя</option>
    <option value="Π§Π΅Π±ΡƒΡ€Π°ΡˆΠΊΠ°">Π§Π΅Π±ΡƒΡ€Π°ΡˆΠΊΠ°</option>
    <option selected value="ΠšΡ€ΠΎΠΊΠΎΠ΄ΠΈΠ» Π“Π΅Π½Π°">ΠšΡ€ΠΎΠΊΠΎΠ΄ΠΈΠ» Π“Π΅Π½Π°</option>
    <option value="Шапокляк">Шапокляк</option>
    <option value="ΠšΡ€Ρ‹ΡΠ° Лариса">ΠšΡ€Ρ‹ΡΠ° Лариса</option>
   </select></p>
   <p><input type="submit" value="ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ"></p>
  </form>

 </body>
</html>

jQuery ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ — Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌ списком

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ со своСго Π±Π»ΠΎΠ³Π°. Π’ послСдниС ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ jQuery стал ΠΎΡ‡Π΅Π½ΡŒ популярным. Π­Ρ‚ΠΎΡ‚ javascript framework Π»Π΅Π³ΠΊΠΎ изучаСтся, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ большой спСктр Π΅Π³ΠΎ возмоТностСй ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄ΡƒΡŽΡ‚. Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ jQuery ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ элСмСнтов ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ критСриям. Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… частСй Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π£Ρ‡ΠΈΡ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠ΅ всСго Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π’Π°ΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ‚ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ HTML элСмСнтами ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ jQuery. ΠŸΠ΅Ρ€Π²Π°Ρ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ° — ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с HTML элСмСнтом

Π Π°Π±ΠΎΡ‚Π° с Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌ списком Π² jQuery
ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ дСйсвиями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ производятся Π½Π°Π΄ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌ списком являСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ значСния, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· списка, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Рассмотрим эти дСйствия ΠΏΠΎ порядку. НапримСр, Ρƒ нас Π΅ΡΡ‚ΡŒ select с:

<select name=»sel»>
<option value=»0″>zero</option>
<option value=»1″>one</option>
<option value=»2″>two</option>
<option value=»3″>three</option>
</select>

1. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта

$(‘#sel option:selected’).val()


2. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ тСкст Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта

$(‘#sel option:selected’).html();


3. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† списка

$(‘#sel’).append( $(‘<option value=»4″>four</option>’) );


4. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² Π½Π°Ρ‡Π°Π»ΠΎ списка

$(‘#sel’).prepend( $(‘<option value=»-1″>minus</option>’) );


5. Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнт послС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта (послС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ)

$(‘#sel option:nth-child(2)’).after($(‘<option value=»7″>inserted</option>’));


6. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт (Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ)

$(‘#sel option:selected’).remove();


7. ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ select

$(‘#sel’).empty();


8. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ элСмСнт Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ (послСдний)

$(‘#sel option:last’).attr(‘selected’, ‘selected’);


9. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ элСмСнт нСдоступным (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ)

$(‘#sel option:nth-child(3)’).attr(‘disabled’, ‘disabled’);


10. И Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ экзотики πŸ™‚ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ тСкста всСх элСмСнтов, ΠΊΡ€ΠΎΠΌΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ

$(‘#sel :not(option:selected)’).css(‘color’, ‘red’);

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π½ΠΈΡ‡Π΅Π³ΠΎ слоТного здСсь Π½Π΅Ρ‚. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… постах Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна информация ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ HTML элСмСнтами Π½Π° jQuery.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° построСн 3 способами: jQuery, JS, CSS

НС Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ ΠΌΠΎΠΉ Π΄Ρ€ΡƒΠ³ создал ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для измСнСния содСрТимого страницы Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° элСмСнта <select> . Π•Π΅ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π», Π½ΠΎ, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠΌ Π² JavaScript, ΠΎΠ½Π° создала ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² jQuery ΠΈ попросила мСня ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

НС Ρ‚ΠΎΡ‡Π½ΠΎ копируя ΠΊΠΎΠ΄, я создал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° ΠΏΡ‹Ρ‚Π°Π»Π°ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ:

 <div> <select name="choose"> <option value="nul" selected>Make a Selection</option> <option value="opt1">Option 1</option> <option value="opt2">Option 2</option> <option value="opt3">Option 3</option> </select> </div> <section> <div> <h3>Option 1 Content</h3> <p> ... </p> </div> </section> <section> <div> <h3>Option 2 Content</h3> <p> ... </p> </div> </section> <section> <div> <h3>Option 3 Content</h3> <p> ... </p> </div> </section>

НСмного ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² Π΅Π³ΠΎ, Π²ΠΎΡ‚ jQuery, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ состояния отобраТСния Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

 $(function() { $('.jqueryOptions').hide(); $('#choose').change(function() { $('.jqueryOptions').slideUp(); $('.jqueryOptions').removeClass('current-opt'); $("." + $(this).val()).slideDown(); $("." + $(this).val()).addClass('current-opt'); }); }); 

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ здСсь происходит?

Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ функция jQuery ΠΈΡ‰Π΅Ρ‚ всС Π±Π»ΠΎΠΊΠΈ содСрТимого, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ класс jqueryOptions, ΠΈ скрываСт ΠΈΡ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ измСняСт Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… select (которая ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Β«Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒΒ»), функция Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ содСрТимого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

.slideUp() Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ slideDown() . Он Π΄Π΅Π»Π°Π΅Ρ‚ это, бСря Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ (обозначаСтся ΠΊΠ°ΠΊ this ) ΠΈ ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° элСмСнт с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ соотвСтствуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π² Β«thisΒ».

Π’Π°ΠΊ:

 <option value="opt1">Option 1</option> 

Π‘ΠΏΠΈΡ‡ΠΊΠΈ:

 <section> ... </section> 

И Π²ΠΎΡ‚ Π΄Π΅ΠΌΠΎ:

Или посмотритС Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ»Π½ΠΎΠΉ страницы здСсь .

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ слишком слоТно, Π°?

Π’Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ это Π½Π° этом?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ jQuery состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ jQuery (сТатый 98 ΠšΠ‘) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этого нСбольшого количСства Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅.

НС измСняя Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ эффСкт, сначала ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π°Π½ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ JavaScript, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ CSS.

Π‘Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ этот эффСкт.

  • ΠšΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ скрыт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
  • Π‘Π΄Π΅Π»Π°Π² Π²Ρ‹Π±ΠΎΡ€, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚.
  • Нам Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ любой Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ.

К этому Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ части, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Ρ‹ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ это Ρ‚Ρ€ΠΈ основных ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° этого скрипта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ. Один ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, скрывая ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это ΠΎΠ΄ΠΈΠ½ Π²Ρ‹Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ. Π”Π²Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΉΡ‚ΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ вСрсии JavaScript Vanilla

Для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ настроим нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Тизнь ΠΏΡ€ΠΎΡ‰Π΅.

 var selectInput = document.getElementById('choose'), panels = document.querySelectorAll('.options'), currentSelect, i; 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для Π»Π΅Π³ΠΊΠΎΠ³ΠΎ доступа ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Π²Π²ΠΎΠ΄Ρƒ select ( selectInput ), Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ панСлям содСрТимого ( panels ), ΠΌΠ΅ΡΡ‚ΠΎΠ·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŽ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ выдСлСния ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ.

Π”Π°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΌ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°Ρ… ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка.

Начиная с послСднСй ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ сначала, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ любой ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» просмотрСн, Π±ΡƒΠ΄Π΅Ρ‚ скрыт ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ. Для этого ΠΌΡ‹ создадим свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

 function clearShow() { for ( i = 0; i < panels.length; i++ ) { panels[i].classList.remove('show'); } } 

Ѐункция clearShow() Π΄Π΅Π»Π°Π΅Ρ‚ нСсколько Π²Π΅Ρ‰Π΅ΠΉ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½ Π±Π΅Ρ€Π΅Ρ‚ Π½Π°ΡˆΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Panel (которая прСдставляСт собой список всСх ΡƒΠ·Π»ΠΎΠ² Π½Π° страницС с классом Β«optionsΒ») ΠΈ выполняСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ (Ρ‚Ρ€ΠΈ Π² нашСм случаС) ΠΈ удаляСт класс Β«showΒ» ΠΈΠ· всСх Π½ΠΈΡ….

Класс Β«showΒ» β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π½Π° нашСй страницС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ способ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ класс Β«showΒ» ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ способ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Β«showΒ» Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ панСль.

 function addShow(showThis) { var el = document.getElementsByClassName(showThis); for ( i = 0; i < el.length; i++ ) { el[i].classList.add('show'); } } 

Ѐункция addShow() ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ showThis ΠΈ добавляСт класс Β«showΒ» ΠΊ ΡƒΠ·Π»Ρƒ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ класс, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… select . Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ всС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ значСния addShow() Π² addShow() .

 function vUpdate() { currentSelect = selectInput.value; clearShow(); addShow(currentSelect); } selectInput.addEventListener('change', vUpdate); 

Ѐункция vUpdate() выполняСтся всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ обновляСтся (обнаруТиваСтся Ρ‡Π΅Ρ€Π΅Π· событиС change ). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° vUpdate() запускаСтся, ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • Π—Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ selectInput ΠΈ сохраняСт Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    currentSelect
    .
  • ВыполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ clearShow Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ слСды .show с ΠΏΠ°Π½Π΅Π»Π΅ΠΉ.
  • ВыполняСт addShow() , пСрСдавая currentSelect для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • НазначаСт .show ΠΏΠ°Π½Π΅Π»ΠΈ с классом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π°.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄Π΅ΠΌΠΎ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС это Π² дСйствии:

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ страницу Π΄Π΅ΠΌΠΎ здСсь .

Но ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ … Если Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΎΠΏΡ†ΠΈΡŽ ΠΈΠ· Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ страницу, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ, Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ панСль Π½Π΅ отобраТаСтся.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

 if (selectInput.value !== 'nul') { currentSelect = selectInput.value; addShow(currentSelect); } 

Π­Ρ‚Π° конструкция if ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚, являСтся Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ selectInput Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΡ‚ nul . Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° addShow() Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ addShow() , которая addShow() ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы. Π£Π΄ΠΎΠ±Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ€Π΅Π΄ΠΊΠΈΠΉ случай, ΠΊΠΎΠ³Π΄Π° страница обновлялась, Π° элСмСнт select ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π΅ отобраТался.

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² случаС, Ссли Π²Π°ΠΌ трСбуСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Internet Explorer 9 ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ classList() . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ это, Π²ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для добавлСния ΠΈ удалСния классов ΠΈΠ· элСмСнта. Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ дСмонстрации CodePen ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

 function addClass(elm, newClass) { elm.className += ' ' + newClass; } function removeClass(elm, deleteClass) { elm.className = elm.className.replace(new RegExp("\\b" + deleteClass + "\\b", 'g'), '').trim();  } 

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS?

ИмСя мноТСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я дСлаю, я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ½ΡΡ‚ΡŒ, насколько Π±Π»ΠΈΠ·ΠΊΠΎ я ΠΌΠΎΠ³Ρƒ ΠΈΡ… воспроизвСсти Π² чистом CSS-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ. Однако, Ссли Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ jQuery ΠΈ vanilla JavaScript ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ CSS.

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ select Π±ΡƒΠ΄Π΅Ρ‚ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, ΠΈ для этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Β«Ρ„Π»Π°ΠΆΠΎΠΊ / ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊΒ».

Π’ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° для нашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ «элСмСнта select Β».

 <input type='checkbox' /> <input type='radio' name='opts' /> <input type='radio' name='opts' /> <input type='radio' name='opts' /> <header> <div> <p> Choose an Option </p> <div> <label for="open_close"> ... </label> <ul> <li> <label for="opt1">Option 1</label> </li> <li> <label for="opt2">Option 2</label> </li> <li> <label for="opt3">Option 3</label> </li> </ul> </div> </div> </header> 

Π’ΠΎ, Ρ‡Ρ‚ΠΎ сдСлано здСсь, Π² основном прСдставляСт собой воссозданиС элСмСнта select насколько это ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ HTML ΠΈ CSS, Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰ΠΈ JavaScript. Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°Π΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ элСмСнты управлСния для привязок стиля для ΠΏΠ°Π½Π΅Π»Π΅ΠΉ select ΠΈ содСрТимого Π½Π° сайтС. И Π½ΠΎΠ²Ρ‹ΠΉ нСупорядочСнный список ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ становятся нашим Π½ΠΎΠ²Ρ‹ΠΌ элСмСнтом select .

ΠœΠ΅Ρ‚ΠΊΠΈ для opt1, opt2 ΠΈ opt3 ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ состояниС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π’ CSS, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, какая Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ° Π²Ρ‹Π±Ρ€Π°Π½Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ панСль настраиваСтся для отобраТСния с использованиСм ΠΎΠ±Ρ‰Π΅Π³ΠΎ сСлСктора Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Ρ€Π°Ρ‚Π°.

 #opt1:checked ~ main .opt1, #opt2:checked ~ main .opt2, #opt3:checked ~ main .opt3 { display: block; height: 100%; overflow: visible; visibility: visible; } 

БущСствуСт мноТСство ΠΌΠ΅Π»ΠΊΠΈΡ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ для Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ элСмСнта select , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ сСлСкторного элСмСнта CSS. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±Ρ‰Π΅ΠΌ сСлСкторС Π±Ρ€Π°Ρ‚ΡŒΠ΅Π² ΠΈ сСстСр ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS, Π²Π°ΠΌ слСдуСт ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΌΠΎΠΈΠΌΠΈ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ Β« Как это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CSS?Β». ΠΈ CSS Morphing Menu .

Π’ этих ΡΡ‚Π°Ρ‚ΡŒΡΡ… я Π½Π΅ расскаТу ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ слоТных аспСктах воссоздания элСмСнта select .

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ этот нСдостаток UX, я Π΄ΠΎΠ±Π°Π²ΠΈΠ» <input type="checkbox" /> . Π’Π΅ΠΏΠ΅Ρ€ΡŒ элСмСнт select ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. НСдостатком здСсь являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ элСмСнт select Π½Π΅ закрываСтся ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΎΠΏΡ†ΠΈΠΈ, Π° закрываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ. НС идСально. Однако я чувствовал, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π» Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΎΠΏΡ‹Ρ‚, Ρ‡Π΅ΠΌ Ρ‚ΠΎΡ‚, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Ρ€Π°Π½Π΅Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ элСмСнту select Π½ΡƒΠΆΠ½ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ снова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ, я ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» стрСлку Π²Π½ΠΈΠ· Π½Π° X ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ элСмСнта:

 #open_close:checked ~ .header-base .select-area .select-options { opacity: 1; visibility: visible; } #open_close:checked ~ .header-base .select-area:after { border: none; content: 'X'; top: -24px; } 

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ истинных элСмСнтов select я Ρ…ΠΎΡ‚Π΅Π» Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ тСкст основного элСмСнта select измСняСтся Π½Π° эту ΠΎΠΏΡ†ΠΈΡŽ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ псСвдоэлСмСнт :before , этот тСкст ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, какая Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ° Π²Ρ‹Π±Ρ€Π°Π½Π°:

 .input-select:before { content: 'Make a Selection'; } #opt1:checked ~ .header-base .input-select:before { content: 'Option 1'; } #opt2:checked ~ .header-base .input-select:before { content: 'Option 2'; } #opt3:checked ~ .header-base .input-select:before { content: 'Option 3'; } 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π² дСйствии, просмотрСв исходный ΠΊΠΎΠ΄ дСмонстрационной вСрсии CodePen Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для CSS:

А Π²ΠΎΡ‚ ΠΈ полная вСрсия страницы .

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΈΠ·Π»ΠΎΠΆΡƒ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы…

ΠœΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ рассмотрСли Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способа создания Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ интСрфСйса с использованиСм jQuery, Π·Π°Ρ‚Π΅ΠΌ с использованиСм ванильного JavaScript, Π° Π·Π°Ρ‚Π΅ΠΌ снова с использованиСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ CSS. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π΅ΡΡ‚ΡŒ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы.

РСшСниС jQuery , бСзусловно, являСтся самым простым Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, имСя ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ ΠΊΠΎΠ΄Π°.

НСдостатком Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ jQuery являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для этого интСрфСйса, Π²Ρ‹ добавляСтС Ρ†Π΅Π»ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅Π»ΠΈ.

РСшСниС Vanilla JavaScript , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ CSS-прСобразования ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹, ΠΎΡ‡Π΅Π½ΡŒ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ jQuery. Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΎ 486 Π±Π°ΠΉΡ‚ β€” ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС, Ρ‡Π΅ΠΌ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° jQuery.

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

РСшСниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для CSS ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с CSS ΠΈΠ»ΠΈ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ нСдостаточно Π·Π½Π°ΠΊΠΎΠΌ с JavaScript. Однако для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ трСбуСтся довольно ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ CSS-ΠΊΠΎΠ΄ΠΎΠ², зависящих ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ сайта, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для использования.

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π²Ρ‹ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π·Π²Π΅ΡΠΈΡ‚ΡŒ всС Β«Π·Π°Β» ΠΈ Β«ΠΏΡ€ΠΎΡ‚ΠΈΠ²Β» ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚.

Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ jQuery

Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ jQuery Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ элСмСнты Π²Π΅Π±-страницы, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с этими элСмСнтами.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ элСмСнты, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ сСлСктор Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ $(), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("img:odd"). Π”Π°Π½Π½Ρ‹ΠΉ сСлСктор Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΊΠΎ всСму Π΄Π΅Ρ€Π΅Π²Ρƒ DOM, ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΡ‚Π±ΠΎΡ€Π° элСмСнтов, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Π΅Ρ€Π΅Π²Π° DOM β€” $("img:odd", "div#slideshow"). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ всС Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈΠ· Π±Π»ΠΎΠΊΠ° с id=slideshow.

Для Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° элСмСнтов сСлСкторы ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ запись ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС Ρ„Π»Π°ΠΆΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ β€” $("input[type=checkbox][checked]").

А с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ сСлСкторов $("input:checkbox:checked:enabled") ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ„Π»Π°ΠΆΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.

Π’Π°ΠΊΠΆΠ΅, допускаСтся ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ нСсколько сСлСкторов Π² ΠΎΠ΄Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, раздСляя сСлСкторы запятой β€” $("p,span"), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС элСмСнты <p> ΠΈ <span>.

Π’Π°Π±Π»ΠΈΡ†Π° 1. Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ jQuery
Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠΌΠ΅Ρ€
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π½Π° страницС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("div").
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚1 элСмСнт2Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты2, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ нСпосрСдствСнно Π² элСмСнт1, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("p img").
ΠšΠ»Π°ΡΡΠ°Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $(".sidebar").
Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнт с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("#main").
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ классВыбираСт ΠΈΠ· элСмСнтов Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ класс, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("p.first").
ΠŸΠΎΡ‚ΠΎΠΌΠΊΠ°Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ элСмСнты Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ сСлСктора, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $(".sidebar a").
Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ сСлСктору, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТатся нСпосрСдствСнно Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ сСлСктора, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π½Π΅ΠΌΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("body > p").
БСстринскиСВыбираСт элСмСнты, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ сСлСктору, ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ нСпосрСдствСнно Π·Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΌΡΡ для Π½Π΅Π³ΠΎ сСстринским, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("h3 + p").
Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ сСлСктору, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ сСстринскими ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту ΠΈ располоТСнныС послС Π½Π΅Π³ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("h3 ~ p").=’http://’]»).
Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("a[href$='.pdf']").
Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты, содСрТащиС Π² любом мСстС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("a[target*='blank']").
:evenΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты ΠΏΠΎ Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ значСниям индСкса 0, 2, 4…, Ρ‚.Π΅. Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ 1, 3, 5… элСмСнты, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("li:even").
:oddΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты ΠΏΠΎ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ значСниям индСкса, Ρ‚.Π΅. Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ 0, 2, 4… элСмСнты.
:firstΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· подходящих, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("p:first").
:lastΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт, послСдний ΠΈΠ· подходящих.
:first-childΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ элСмСнтами своих Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.
:last-childΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ послСдними Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ элСмСнтами своих Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.
:only-childΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ СдинствСнными Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ элСмСнтами своих Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.
:nth-child(n)Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ n-Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ элСмСнтами своих Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.
:nth-child(Xn+Y)Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ n-элСмСнт, порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ рассчитываСтся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках.
:nth-of-type(n)Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ n-ΠΌΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ элСмСнтами Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° для своих Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.
:parentΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ нСпустыС элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ (Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅) элСмСнты, Π° Ρ‚Π°ΠΊΠΆΠ΅ содСрТащиС тСкст.
:eq(n)Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты с индСксом n, ΠΏΡ€ΠΈ этом индСксы ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ нуля.
:gt(n)Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты, индСкс ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… большС n, индСксы ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ нуля.
:lt(n)Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты, располоТСнныС ΠΏΠ΅Ρ€Π΅Π΄ n-элСмСнтом, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ n-элСмСнт.
:not(сСлСктор)ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ элСмСнт, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ сСлСктора, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("a:not(.link)"), $("a:not([href$='.pdf'])").
:has(сСлСктор)Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ сСлСктор, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, элСмСнты списка, содСрТащиС Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя ссылки: $("li:has(a)").
:contains(тСкст)Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² скобках тСкст, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("a:contains(Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ)").
:hiddenΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ скрытыС элСмСнты, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ display: none;, Π° Ρ‚Π°ΠΊΠΆΠ΅ элСмСнты Ρ„ΠΎΡ€ΠΌ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ type="hidden" Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $("ul:hidden").show() β€” Π΄Π΅Π»Π°Π΅Ρ‚ скрытыС элСмСнты Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ.
:visibleΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ элСмСнты, ΠΊ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ элСмСнтам относятся элСмСнты, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… большС нуля, Π° Ρ‚Π°ΠΊΠΆΠ΅ элСмСнты со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ visibility: hidden ΠΈ opacity: 0.
:activeΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΌΡ‹ΡˆΠΈ.
:checkedΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ„Π»Π°ΠΆΠΊΠΈ ΠΈΠ»ΠΈ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ.
:focusΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнт, находящийся Π² фокусС.
:hoverΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнт, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π²Π΅Π΄Π΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ.
:disabledΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ элСмСнты (Ρ„ΠΎΡ€ΠΌ).
:enabledΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ элСмСнты (Ρ„ΠΎΡ€ΠΌ).
:emptyΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, Π½Π΅ содСрТащиС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов.
:targetΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ссылаСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π² url-адрСсС.
:animatedΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС Π°Π½ΠΈΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ элСмСнты.
:buttonΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС ΠΊΠ½ΠΎΠΏΠΊΠΈ input[type=submit], input[type=reset], input[type=button], button.
:checkboxΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты-Ρ„Π»Π°ΠΆΠΊΠΈ input[type=checkbox].
:fileΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты Ρ‚ΠΈΠΏΠ° file, input[type=file].
:headerΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎΡ‚ h2 Π΄ΠΎ h6.
:imageΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ изобраТСния Π² элСмСнтах Ρ„ΠΎΡ€ΠΌ input[type=image].
:inputΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты Ρ„ΠΎΡ€ΠΌ input, select, textarea, button.
:passwordΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты Π²Π²ΠΎΠ΄Π° пароля input[type=password].
:radioΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ input[type=radio].
:resetΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ сброса input[type=reset], button[type=reset].
:selectedΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты option.
:submitΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ input[type=submit], button[type=submit].
:textΠ’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты Π²Π²ΠΎΠ΄Π° тСкстаinput[type=text].

ΠŸΡ€ΠΎΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Chrome (Ρ‡Π°ΡΡ‚ΡŒ 2) β€” CSS-LIVE

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Improve Your Debugging Skills with Chrome DevTools (Part 2) с сайта telerik.com для css-live.ru, Π°Π²Ρ‚ΠΎΡ€ β€” ΠŸΠΈΡ‚Π΅Ρ€ ΠœΠΈΠ»Ρ‡Π΅Π²

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Chrome, Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠ² Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ части.

Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ сгСнСрированный HTML ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ стили? Π£ΠΆΠ΅ смСло ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ JavaScript Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅? НадСюсь, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этой сСрии ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Chrome, Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠ² Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ части.

Освоив Π½ΠΎΠ²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΌΡ‹ поэкспСримСнтируСм с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Kendo UI, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ jQuery Grid, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ‚ΠΎΡ‡ΠΈΡ‚ΡŒ Π½Π° Π½Π΅ΠΌ свСТСприобрСтСнныС знания.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅:

Π£ΠΌΠ½ΠΎΠ΅ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

Π£ΠΌΠ½ΠΎΠ΅ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ β€” извСстная функция Π² IDE, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π°Ρ эффСктивнСС ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄. Π’ Chrome 68 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ DevTools Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² консоль. А ΠΈΠΌΠ΅Π½Π½ΠΎ: ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ вычислСниС, Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ послС выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ подсказки для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим эти возмоТности Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:


function test(yourValue) {
  return {
    value: yourValue,
    multiplied: yourValue * 3
  };
}

Π£ΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ вычислСниС

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ отобразится Π² консоли ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Chrome с Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌ вычислСниСм:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ выраТСния Π² ΠΊΠΎΠ΄Π΅ Π² консоли, Ссли Ρƒ этих Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅Ρ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов (ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Ρ‰Ρ‘ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктах ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· вопроса Β«JavaScript-замыкания ΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты простым языком?Β» Π½Π° StackOverflow

Π‘ΠΎΠ²Π΅Ρ‚: Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ вычислСниС происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈΒ» (Source) Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π½Π°Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ выдСляСтС Π΅Π³ΠΎ.

АвтодополнСниС послС выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

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

Π‘ΠΎΠ²Π΅Ρ‚: сохранитС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (см. «АвтодополнСниС IntelliSense для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°Β») ΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² консоли.

Π—Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ API консоли ΠΈ сохранитС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ var lastEvaluatedExpression = $_;.

Подсказки для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСдоставляСт Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ подходящих Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄ для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² консоли ΠΈΠ»ΠΈ раскрываСтС Π΅Π΅ скобки ΠΈΠ»ΠΈ Π½Π°Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π½ΠΈΡ… курсор ΠΌΡ‹ΡˆΠΈ.

Π›Ρ‘Π³ΠΊΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ элСмСнтам ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌ выраТСниям

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ я Π½Π΅ пояснил, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ пСрСмСнная $_. Π­Ρ‚ΠΎ Π½Π΅ магия, Π° Ρ‡Π°ΡΡ‚ΡŒ встроСнного API ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Chrome присваиваСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ выраТСния списку ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, ΠΏΡ€ΠΈ вычислСнии выраТСния 40+2 получится 42. И, допустим, ΠΌΠ½Π΅ лСнь Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ пСрСмСнная ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»ΠΎ Π·Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ 7.5 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π»Π΅Ρ‚, ΠΏΠΎΠΊΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ высчитываСт этот ΠΎΡ‚Π²Π΅Ρ‚. Π‘ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ Chrome Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ достаточно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $_.

API ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ Chrome сохраняСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выраТСния Π² ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Консоль прСдоставляСт Π΅Ρ‰Ρ‘ ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ сокращСния: $0, $1, $2, $3 ΠΈ $4. $0 ссылаСтся Π½Π° послСдний Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Β», $1 β€” Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° DOM-элСмСнт, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠ»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ быстро ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ доступныС части.

Π”Π°Π²Π°ΠΉΡ‚Π΅ поупраТняСмся с этим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ PanelBar для Kendo UI, Π³Π΄Π΅ ΠΌΡ‹ обратимся ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту, скроСм Π΅Π³ΠΎ, Π° послС ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ снова.

Π‘ΠΎΠ²Π΅Ρ‚: ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Chrome ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния HTML ΠΈ DOM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ происходят Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (см. «МолниСносноС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка Π² AngularΒ»)

ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ подсказки Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅Π»Π΅Π³ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя. Π‘ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ автоматичСски скрываСмыми элСмСнтами β€” Π²Ρ€ΠΎΠ΄Π΅ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ взаимодСйствии с ΡŽΠ·Π΅Ρ€ΠΎΠΌ (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΊΠ»ΠΈΠΊ ΠΌΡ‹ΡˆΡŒΡŽ ΠΈΠ»ΠΈ пСрСтаскиваниС) β€” Ρ‚Π° ΠΆΠ΅ история. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ, я часто ΠΏΡ€ΠΈΠ±Π΅Π³Π°Π» ΠΊΠΎ всяким ухищрСниям, придумывая ΠΆΡƒΡ‚ΠΊΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Π½ΠΈΡ… ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ. ВстрСчайтС setTimeout() ΠΈ debugger.

setTimeout() Π½ΡƒΠΆΠ΅Π½ для выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя. А Π΅Ρ‰Ρ‘ ΠΎΠ½ мСняСт порядок выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ пригодится ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ послС быстрой Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ (см. Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒ setTimeout(fn, 0) ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π΅Π½?Β»)

Π Π°Π·ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΡΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ setTimeout(), ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΡ‰ΡŒ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ debugger, ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° автоматичСски скрываСмый элСмСнт Π²ΠΈΠ΄Π΅Π½, ΠΈ Π½Π΅ Π±ΠΎΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ тотчас ΠΆΠ΅ исчСзнСт.

На Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ подсказку, вызывая setTimeout(function(){debugger; }, 3000) Π² консоли:

На ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ прСдставлСны API рисования ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ jQuery Tooltip ΠΈΠ· Kendo UI

Π‘ΠΎΠ²Π΅Ρ‚: Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти Π² Π»ΠΎΠ³ элСмСнты, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΡˆΡ‘Π» фокус, Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ консоль: window.focusedelement; setInterval(function(){ if(window.focusedElement != document.activeElement){window.focusedElement = document.activeElement; console.log(document.activeElement)}})

Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ повторСния с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ страницу ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ clearInterval():

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта Π½Π° страницС ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π’ΠΎΡ‡ΠΊΠΈ останова ΠΏΠΎ измСнСнию DOM

Они ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта, Ссли Ρƒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² DOM мСняСтся структура, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ»ΠΈ ΠΎΠ½ удаляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ элСмСнту Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Β», Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π° ΠΏΡƒΠ½ΠΊΡ‚ Β«ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΒ» (Break) Π² контСкстном мСню ΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ Β«ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°Β» (subtree modifications), Β«ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Β» (attribute modifications) ΠΈΠ»ΠΈ Β«ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π°Β» (node removal).

Π’ΠΎΡ‡ΠΊΠΈ остановка для XHR/Fetch

Они ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта, Ссли адрСс Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ рСсурса содСрТит строку, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ настроСна Ρ‚ΠΎΡ‡ΠΊΠ° останова. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Β«Π’ΠΎΡ‡ΠΊΠΈ останова для XHRΒ» (XHR Breakpoints) Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈΒ», ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова» (Add breakpoint) ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ URL.

Π’ΠΎΡ‡ΠΊΠΈ останова для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий

Они ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта ΠΏΡ€ΠΈ срабатывании событий ΠΌΡ‹ΡˆΠΈ, ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, устройства, Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Β«Π’ΠΎΡ‡ΠΊΠΈ останова для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий» (Event Listeners Breakpoints) Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈΒ» ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ (ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ) события.

Π’ΠΎΡ‡ΠΊΠΈ останова для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Они ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΠ°ΡƒΠ·Π° ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈΒ» (Pause on Exception) Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈΒ»; ΠΊΠΎΠ³Π΄Π° эта ΠΊΠ½ΠΎΠΏΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, появляСтся добавочная опция Β«ΠŸΠ°ΡƒΠ·Π° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ…Β» (Pause on caught exceptions).

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

  • НаТмитС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΒ» (Continue), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π±Π΅Π· прСрывания» (Continue without interruption).
  • НаТмитС F12, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Chrome.

Π’ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈΒ» стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π΅Ρ‰Π΅ нСсколько областСй.

  • Π’ΠΊΠ»Π°Π΄ΠΊΠ° «ВыраТСния для отслСТивания» (Watch expressions): позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
  • Π Π°Π·Π΄Π΅Π» Β«Π‘Ρ‚Π΅ΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²Β» (Call Stack) ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ выполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Ρ‘Π» ΠΊΠΎΠ΄ ΠΊ этой Ρ‚ΠΎΡ‡ΠΊΠ΅ останова Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ хронологичСском порядкС.
  • ПанСль Β«ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости» (Scope): ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Ρ‹ выполнСния Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ Chrome

Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ошибкой ReferenceError (говорящСй, Ρ‡Ρ‚ΠΎ функция Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°) ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² консоли Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°? Π’Ρ‹ Π½Π΅ ΠΎΠ΄ΠΈΠ½ΠΎΠΊΠΈ, это частый случай.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° страница со скриптом загруТаСся Π² <iframe>, поэтому находится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ контСкстС выполнСния. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, контСкст выполнСния ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, ΠΈ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы, <iframe> ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π΅ΡΡ‚ΡŒ свой контСкст выполнСния. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ контСкстами ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка Π² консоли:

НСмного сообраТСний насчёт контСкста выполнСния:

  • Когда Π²Ρ‹ просматриваСтС ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ элСмСнт, Π² качСствС контСкста выполнСния автоматичСски выбираСтся страница, содСрТащая этот элСмСнт
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈ ΠΈΠ· всСх контСкстов Π² консоли, ΡƒΠ±Π΅Ρ€ΠΈΡ‚Π΅ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ «Волько Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ контСкст» (Selected context only) Π² настройках консоли.
  • Π‘ ΠΏΡ€Π°Π²ΠΎΠΉ стороны Π΅ΡΡ‚ΡŒ ссылка Π½Π° Ρ„Π°ΠΉΠ», Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ²ΡˆΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° запись Π² Π»ΠΎΠ³Π΅.

Π­Ρ‚ΠΈ контСксты Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²ΠΈΠ΄Π½Ρ‹ Π² «пСсочницС» ΠΏΠΎ Kendo UI, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ сСйчас потСстируСм Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ совСты.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ jQuery Grid ΠΈΠ· Kendo UI

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

Π—Π°Π΄Π°Ρ‡Π°: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ JavaScript для измСнСния Ρ„ΠΎΠ½Π° ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π³ΠΎ элСмСнта, созданного ΠΏΡ€ΠΈ пСрСтаскивании Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΠ· «пСсочницы» Π½Π° основС Π΄Π΅ΠΌΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° jQuery Grid ΠΈΠ· Kendo UI.

ΠŸΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это сами, Π½ΠΎ Ссли Π½Π΅ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ совСтами:

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΆΠ΅ Π½Π° Β«Ρ‚Ρ‹Β» с ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ Chrome β€” никакая магия CLI, автоматичСски ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты ΠΈΠ»ΠΈ слоТныС сцСнарии ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Π²Π°ΠΌ. ΠœΡ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΎΠ²Π»Π°Π΄Π΅Π»ΠΈ всСм этим ΠΈ ΠΎΠ΄ΠΎΠ»Π΅Π»ΠΈ Ρ‚Ρ‘ΠΌΠ½ΡƒΡŽ сторону. ΠšΡ€ΠΎΠΌΠ΅ ΡˆΡƒΡ‚ΠΎΠΊ, надСюсь, Ρ‡Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»Π° хотя Π±Ρ‹ Π½Π° ΠΎΠ΄ΠΈΠ½ слоТный вопрос β€” Π΄Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ. А Ρ‡Ρ‚ΠΎ насчёт Π²Π°ΡˆΠΈΡ… совСтов ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠΎΠ²? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈΠΌΠΈ (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ всё Ρ€Π°Π²Π½ΠΎ) Π² коммСнтариях Π½ΠΈΠΆΠ΅.

P.S. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ интСрСсно:

CSS-сСлСктор :not. ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π’ спСцификации ΠΈ Π±Π»ΠΎΠ³Π°Ρ… ΠΏΡ€ΠΎ сСлСктор :not ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ приводят ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ искусствСнныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ синтаксис ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия, Π½ΠΎ Π½Π΅ нСсут Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ΄Π΅ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ сСлСктора.

НапримСр:

p:not(.classy) { color: red; }

Ну ΠΎΠΊΠ΅ΠΉ, Π΄ΡƒΠΌΠ°ΡŽ я, Π² ΠΌΠΎΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ситуации. ΠžΠ±Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ ΠΌΡ‹ вСдь ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π±Π΅Π· :not. ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ структуру сСлСкторов ΠΈΠ»ΠΈ ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π±Π΅Π· класса

Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ :not ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΡΡ‚ΠΈΠ»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ сгСнСрированный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (Π½Π΅Ρ‚ возмоТности Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΌ классы), ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Ρƒ нас ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ Ρ€Π°ΡΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π΅ΠΌ классы слишком Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‘ΠΌΠΊΠΎ.

НапримСр, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π° сайтС ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ красивыС Π±ΡƒΠ»Π»ΠΈΡ‚Ρ‹ для Π½Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… списков ul li. ΠœΡ‹ пишСм ΠΊΠΎΠ΄:

ul li {  }

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, наши красивыС Π±ΡƒΠ»Π»ΠΈΡ‚Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π΅, Π½ΠΎ ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Π³Π΄Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ul li.

ΠœΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия сСлСктора:

.content ul li {  }

ΠΠ°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΌΡ‹ спасли, Π½ΠΎ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΡƒΠ»Π»ΠΈΡ‚Ρ‹ всё Π΅Ρ‰Π΅ вылазят Π½Π° слайдСрах, списках новостСй ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… конструкциях Π²Π½ΡƒΡ‚Ρ€ΠΈ .content, Π³Π΄Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ul li.

Π”Π°Π»Π΅Π΅ Ρƒ нас Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

1) ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ ΠΌΠ΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ стили Π² слайдСрах ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… мСстах. Но это ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ Β«DRYΒ» ΠΈ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² Β«Π²ΠΎΠ½ΡŽΡ‡Π΅Π³ΠΎΒ» ΠΊΠΎΠ΄Π°. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ€Π°Π· ΠΈ навсСгда: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΊΠΎΡ€Π΄Π΅ΠΎΠ½ ΠΈ списки Π² Π½Π΅ΠΌ снова придСтся ΠΎΠ±Π½ΡƒΠ»ΡΡ‚ΡŒ.

2) ΠΏΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ класс всСм спискам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

.textlist li {  }

Π­Ρ‚ΠΎ добавляСт лишнСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ расстановкС классов Π² ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π΅. Иногда ΠΈΠΌΠ΅Π΅Ρ‚ смысл, Π½ΠΎ лишнюю Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚.

3) ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ul li, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… классов Π²ΠΎΠΎΠ±Ρ‰Π΅:

ul:not([class]) li {  }

ПобСда! Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ расстановкС классов Π² ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π΅. А Π½Π° слайдСрах, Π°ΠΊΠΊΠΎΡ€Π΄Π΅ΠΎΠ½Π°Ρ… ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… конструкциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ списки, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΡ… Π² своСй Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅, Π² 99% случаСв ΡƒΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ свои классы, ΠΈ наши стили ΠΈΡ… Π½Π΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ΅ΠΌ β€” Β«Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнты Π±Π΅Π· класса» β€” ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для оформлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ спискам, Π½ΠΎ ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… случаСв.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. ИзмСнСниС внСшнСго Π²ΠΈΠ΄Π° всСх элСмСнтов, ΠΊΡ€ΠΎΠΌΠ΅ Π½Π°Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ

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

Π’Π°ΠΊΠΎΠΉ эффСкт ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· :not ΠΏΡƒΡ‚Π΅ΠΌ пСрСзаписи Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. И это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² бо́льшСм количСствС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ².


ul:hover li {
  opacity:0.5;
}
ul:hover li:hover {
  opacity:1;
}

Но Ссли придСтся ΠΎΠ±Π½ΡƒΠ»ΡΡ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ свойств, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ :not.


ul:hover li:not(:hover) {
  opacity:0.5;
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. МСню с раздСлитСлями ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами

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

Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ нСсколькими способами.

Π§Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ свойств. Но Ρ‚ΡƒΡ‚ Π΄Π²Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π΅ΡΡ‚ΡŒ Β«DRYΒ».

.menu-item:after {
  content: ' | ';
}
.menu-item:last-child:after {
  content: none;
}

Π§Π΅Ρ€Π΅Π· :nth-last-child(). Одно ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½ΠΎ тяТСло читаСтся.

.menu-item:nth-last-child(n+2):after {
  content: ' | ';
}

Π§Π΅Ρ€Π΅Π· :not() β€” самая короткая ΠΈ понятная запись.

.menu-item:not(:last-child):after {
  content: ' | ';
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4. Debug css

Π£Π΄ΠΎΠ±Π½ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ самоконтроля ΠΈΡΠΊΠ°Ρ‚ΡŒ/ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π±Π΅Π· alt, label Π±Π΅Π· for ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ошибки.


img:not([alt]),
label:not([for]),
input[type=submit]:not([value]) {
  outline:2px solid red;
}


ul > *:not(li),
ol > *:not(li),
dl > *:not(dt):not(dd) {
  outline:2px solid red;
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5. Поля Ρ„ΠΎΡ€ΠΌ

РаньшС тСкстовых ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌ Π±Ρ‹Π»ΠΎ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ. Достаточно Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

select,
textarea,
[type="text"],
[type="password"] {
    
}

Π‘ появлСниСм Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ Π² HTML5 этот список увСличился:

select,
textarea,
[type="text"],
[type="password"],
[type="color"],
[type="date"],
[type="datetime"],
[type="datetime-local"],
[type="email"],
[type="number"],
[type="search"],
[type="tel"],
[type="time"],
[type="url"],
[type="month"],
[type="week"] {
  
}

ВмСсто пСрСчислСния 14 Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ½ΠΏΡƒΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ 8 ΠΈΠ· Π½ΠΈΡ…:

select,
textarea,
[type]:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="file"]):not([type="image"]) {
  
}

Π›Π°Π΄Π½ΠΎ, этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ красив, ΠΈ я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ всё ΠΆΠ΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с пСрСчислСниСм, ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с IE8+, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с IE9+.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ согласно спСцификации Π² скобках сСлСктора :not() ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ простой сСлСктор ΠΈ Π² скобках нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сам сСлСктор :not(). Если Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько элСмСнтов, :not() ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ нСсолько Ρ€Π°Π·, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 5.

Если ΠΎΡ‡Π΅Π½ΡŒ Π½ΡƒΠΆΠ½Ρ‹ CSS3-сСлСкторы Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ„ΠΈΠ» selectivizr.

HTMLSelectElement.selectedOptions — Π²Π΅Π±-API | MDN

  var selectedCollection = HTMLSelectElement.selectedOptions;  

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

HTMLCollection , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ пСрСчислСны всС Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ HTMLOptionElement , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ элСмСнтом HTMLSelectElement ΠΈΠ»ΠΈ HTMLOptGroupElement Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… , ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², Π½ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² список.

Если Π² настоящСС врСмя Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, коллСкция пуста ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Π° ΠΈΠ· 0.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ элСмСнт

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ :

.


ИзмСнСниС CSS ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ дСмонстрации Ρ†Π²Π΅Ρ‚Π°

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ select с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ jQuery, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Ρ†Π²Π΅Ρ‚ ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° Ρ‚Π΅Π»Π°.

Π‘Π½Π°Ρ‡Π°Π»Π° см. Π”Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт нСбольшоС объяснСниС:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΠΎΠ΄

ΠŸΡ€ΠΈ событии Π²Ρ‹Π±ΠΎΡ€Π° измСнСния Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка выполняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ jQuery:

$ ("# jqueryselect"). Change (function () {

var selectedcolor = $ ('# jqueryselect'). Val ();

$ ("body"). Css ("background -Ρ†Π²Π΅Ρ‚ ", selectedcolor);

});


Если ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ присваиваСтся Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка, Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ $.css, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСлСктор Ρ‚Π΅Π»Π°, Π° Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° измСняСтся Π½Π° Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π±Ρ€Π°Π½ Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС.

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ div, Π°Π±Π·Π°Ρ†, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, списки ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты вмСсто сСлСктора Ρ‚Π΅Π»Π° для выполнСния Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ дСйствия.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ получСния Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ значСния ΠΈ выполнСния дСйствия Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ HTML

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я создал Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ HTML с классом CSS ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ дСмонстрационной страницы. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡƒ для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ Ρ‚Π΅ΠΌΡƒ, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΎΠ½Π»Π°ΠΉΠ½, Π° Π·Π°Ρ‚Π΅ΠΌ я объясню, Ρ‡Ρ‚ΠΎ дСлаСтся Π½ΠΈΠΆΠ΅:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½-Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΊΠΎΠ΄

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ $ .addClass jQuery. Π”ΠΎ этого ΠΌΠ΅Ρ‚ΠΎΠ΄ removeClass удалял ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ класс Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ HTML, послС Ρ‡Π΅Π³ΠΎ выполнялся ΠΌΠ΅Ρ‚ΠΎΠ΄ addClass для примСнСния Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ класса.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ этот ΠΊΠΎΠ΄ jQuery, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ помСщаСтся нСпосрСдствСнно Π½Π°Π΄ Ρ‚Π΅Π³ΠΎΠΌ :

$ ("# selecttheme"). Change (function () {

var themetbl = $ ('# selecttheme'). Val ();

$ ("# tbl"). RemoveClass () .addClass (themetbl);

});


Π’Π°Π±Π»ΠΈΡ†Π° Β«themesΒ» CSS создаСтся ΠΈ помСщаСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π°