Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS властивість Event.which (Mouse)

Загальний опис

which — це властивість об'єкта події MouseEvent, яка повертає значення, що відповідає кнопці миші, натиснутій під час події. Вона використовується для виявлення того, яка кнопка була натиснута: ліва, права або середня. Ця властивість повертає числове значення: 1 для лівої кнопки, 2 для середньої, 3 для правої.

Раніше властивість which була популярною для обробки подій миші, однак сьогодні рекомендується використовувати більш сучасну властивість button. Однак which все ще використовується для сумісності з застарілими браузерами або специфічними випадками, коли підтримка старих браузерів є критичною.

Коли користувач натискає на елемент за допомогою миші, подія миші може бути перехоплена за допомогою слухача подій, наприклад, для подій mousedown, mouseup або click. У таких подіях ви можете отримати доступ до властивості which, щоб визначити, яка саме кнопка миші була використана. Ось простий приклад:

document.addEventListener('mousedown', function(event) {
  if (event.which === 1) {
    console.log('Натиснута ліва кнопка миші.');
  } else if (event.which === 2) {
    console.log('Натиснута середня кнопка миші.');
  } else if (event.which === 3) {
    console.log('Натиснута права кнопка миші.');
  }
});

Як видно з прикладу, за допомогою перевірки значення event.which, можна точно визначити, яка кнопка була натиснута. Якщо ви працюєте з сучасними браузерами, слід звертати увагу на властивість button, оскільки вона надає більше можливостей для точного контролю.

Зазначимо, що властивість which не підтримується для сенсорних екранів та клавіатури, оскільки вона застосовується виключно для подій миші. Для кращої сумісності коду можна використовувати одночасно і which, і button, перевіряючи обидві властивості для забезпечення кросбраузерності.

Порада:

Не всі події миші мають повну підтримку властивості which у застарілих браузерах. Якщо вам потрібно забезпечити сумісність з дуже старими версіями браузерів, рекомендується використовувати умовну перевірку на наявність властивості button.

Порада:

Уникайте використання which для подій, пов'язаних із сенсорними екранами, оскільки вона не повертає ніяких значень. Замість цього використовуйте інші властивості, такі як pointerType, для відстеження дотиків або стилуса.

Порада:

Не забувайте про те, що різні операційні системи та браузери можуть мати різні поведінкові відмінності при натисканні середньої або правої кнопок миші. Завжди тестуйте свій код у кількох браузерах та середовищах.

Синтаксис

event.which

Значення

Return

Переглядачі

Переглядач

1

1

1

15

79

Переглядач

37

18

4

1

Переглядач

-

-

Приклади


У цьому прикладі користувач може натискати різні кнопки миші на елементі "Натисни мене". Результат буде відображений в області під кнопкою. Відповідно до того, яка кнопка миші була натиснута (ліва, середня або права), виводиться різне повідомлення. Стандартне контекстне меню (правий клік) вимикається для наочності.

У цьому прикладі ми відстежуємо праве клацання миші за допомогою значення event.which === 3. Це можна використовувати для створення власних контекстних меню або обробки подій правої кнопки миші.

document.addEventListener('mousedown', function(event) {
  if (event.which === 3) {
    alert('Праве клацання - відкриваємо контекстне меню.');
  }
});

Цей приклад демонструє використання середньої кнопки миші (event.which === 2). Ви можете використовувати це для спеціальних функцій, наприклад, відкриття нових вкладок або виконання швидких дій без участі основних кнопок.

document.addEventListener('mousedown', function(event) {
  if (event.which === 2) {
    alert('Середня кнопка миші натиснута.');
  }
});